在go语言中如何加载GOB和PEM文件的流程步骤
Go  /  管理员 发布于 1年前   375
私钥和公钥加密系统已经实现了大量的安全实现,如加密电子邮件(PGP)、ssh登录等。
下面看看如何加载前一个关于保存私钥和公钥的教程中创建的密钥和pem文件:
https://www.zongscan.com/demo333/96009.html
示例代码:
loadrsakey.go
package main
import (
"fmt"
"os"
"bufio"
"crypto/rsa"
"encoding/pem"
"encoding/gob"
)
func main () {
// Load Private Key
privatekeyfile, err := os.Open("private.key")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
decoder := gob.NewDecoder(privatekeyfile)
var privatekey rsa.PrivateKey
err = decoder.Decode(&privatekey)
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
privatekeyfile.Close()
fmt.Printf("Private Key : \n%x\n", privatekey)
// Public Key
publickeyfile, err := os.Open("public.key")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
decoder = gob.NewDecoder(publickeyfile)
var publickey rsa.PublicKey
err = decoder.Decode(&publickey)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
publickeyfile.Close()
fmt.Printf("Public key : \n%x\n", publickey)
// Load PEM
pemfile, err := os.Open("private.pem")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// need to convert pemfile to []byte for decoding
pemfileinfo, _ := pemfile.Stat()
var size int64 = pemfileinfo.Size()
pembytes := make([]byte,size)
// read pemfile content into pembytes
buffer := bufio.NewReader(pemfile)
_, err = buffer.Read(pembytes)
// proper decoding now
data, _ := pem.Decode([]byte(pembytes))
pemfile.Close()
fmt.Printf("PEM Type :\n%s\n", data.Type)
fmt.Printf("PEM Headers :\n%s\n", data.Headers)
fmt.Printf("PEM Bytes :\n%x\n", string(data.Bytes))
}
输出:
Private Key :
{{bdfc7d7......b86ac5dac2 []}}
Public key :
{bdfc7d76..... 10001}
PEM Type :
RSA PRIVATE KEY
PEM Headers :
map[]
PEM Bytes :
3082025c02....ac5dac2
原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..博主 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 @ mashrdn 多切换几个节点测试,免费ssr是没那么稳..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号