分享
golang rsa公钥私钥pem文件生成
zb_liang · · 7324 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
funcmain()
{
//rsa密钥文件产生
GenRsaKey(1024)
}
//RSA公钥私钥产生
funcGenRsaKey(bitsint)error{
//生成私钥文件
privateKey,err:=rsa.GenerateKey(rand.Reader,bits)
iferr!=nil{
returnerr
}
derStream:=x509.MarshalPKCS1PrivateKey(privateKey)
block:=&pem.Block{
Type:"RSAPRIVATEKEY",
Bytes:derStream,
}
file,err:=os.Create("private.pem")
iferr!=nil{
returnerr
}
err=pem.Encode(file,block)
iferr!=nil{
returnerr
}
//生成公钥文件
publicKey:=&privateKey.PublicKey
derPkix,err:=x509.MarshalPKIXPublicKey(publicKey)
iferr!=nil{
returnerr
}
block=&pem.Block{
Type:"PUBLICKEY",
Bytes:derPkix,
}
file,err=os.Create("public.pem")
iferr!=nil{
returnerr
}
err=pem.Encode(file,block)
iferr!=nil{
returnerr
}
returnnil
} -----BEGINRSAPRIVATEKEY-----MIICWwIBAAKBgQDVuvoH3yDBXhAG7KFk5aaoPKkGx2PlOfJni/uZgz/oBEgIY38P+frDL42ehjcAn6fIstZGUpZUjxwGSWqWvzA8TX964r3cIF6XT60GybDoHYRFmkLuKI3Ba560DKHgCw+0lHn/qiS12IXneSqL508qVo37TwWl86I+8hy40xyu+wIDAQABAn9eVyoGT3cl418vr0OORdBKcnwpgdmWVP2qtx9Xo5eR0lH5YfG0G6OUhGj+kD+3BsII1OfAIrQ4nvK/06g44itno4Zm3VDP5kt1cdgdwrYdT8FPG0hDsSCFxlxF1r6qzINw2/bt0sXH70EgQqxY7PM+nGuCUsfrJHksMCnyxYbZAkEA/xxNTDqzHGBb5C4bhuQnwZqUbsobaw25UOEM/YQj9QEIrCOY0Niw2HRjfDGNNIv6UOEiPhVJ/bvn735O5G9NNQJBANZ5vbJWlUVzOb6h5VwcU5BQf6R3+5PVomE8aXB+ARWl6n805jJTtl8jgI5rKGLL3TF6vDJDol05cvaHcyP5AW8CQGB/fiW1lobHVDsNzc/KgddT942o2ZI3EMAtQNKsp0VH7NXgaS+mp85YyED0JWuY/0iUwHUnbGOULnmDF6iFCXkCQQCXORWA5j2vz1PazwoKTUq6SZgGXjb7gLlSeCccEywumGLkOGdK+u1u3XhqcrHyHy4iEhkaE8gqlTQzEUQlDBBvAkEA7pM6AMXZRdGL+w6fzsr18oR7flIInorc0DMerRr11HZS6nxrVd66iTxAqTs01vPgiVPDRPPSoOSA7cCWIUVBVA==-----ENDRSAPRIVATEKEY-----
-----BEGINPUBLICKEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVuvoH3yDBXhAG7KFk5aaoPKkGx2PlOfJni/uZgz/oBEgIY38P+frDL42ehjcAn6fIstZGUpZUjxwGSWqWvzA8TX964r3cIF6XT60GybDoHYRFmkLuKI3Ba560DKHgCw+0lHn/qiS12IXneSqL508qVo37TwWl86I+8hy40xyu+wIDAQAB-----ENDPUBLICKEY-----
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信7324 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
//rsa密钥文件产生
GenRsaKey(1024)
}
//RSA公钥私钥产生
funcGenRsaKey(bitsint)error{
//生成私钥文件
privateKey,err:=rsa.GenerateKey(rand.Reader,bits)
iferr!=nil{
returnerr
}
derStream:=x509.MarshalPKCS1PrivateKey(privateKey)
block:=&pem.Block{
Type:"RSAPRIVATEKEY",
Bytes:derStream,
}
file,err:=os.Create("private.pem")
iferr!=nil{
returnerr
}
err=pem.Encode(file,block)
iferr!=nil{
returnerr
}
//生成公钥文件
publicKey:=&privateKey.PublicKey
derPkix,err:=x509.MarshalPKIXPublicKey(publicKey)
iferr!=nil{
returnerr
}
block=&pem.Block{
Type:"PUBLICKEY",
Bytes:derPkix,
}
file,err=os.Create("public.pem")
iferr!=nil{
returnerr
}
err=pem.Encode(file,block)
iferr!=nil{
returnerr
}
returnnil
} -----BEGINRSAPRIVATEKEY-----MIICWwIBAAKBgQDVuvoH3yDBXhAG7KFk5aaoPKkGx2PlOfJni/uZgz/oBEgIY38P+frDL42ehjcAn6fIstZGUpZUjxwGSWqWvzA8TX964r3cIF6XT60GybDoHYRFmkLuKI3Ba560DKHgCw+0lHn/qiS12IXneSqL508qVo37TwWl86I+8hy40xyu+wIDAQABAn9eVyoGT3cl418vr0OORdBKcnwpgdmWVP2qtx9Xo5eR0lH5YfG0G6OUhGj+kD+3BsII1OfAIrQ4nvK/06g44itno4Zm3VDP5kt1cdgdwrYdT8FPG0hDsSCFxlxF1r6qzINw2/bt0sXH70EgQqxY7PM+nGuCUsfrJHksMCnyxYbZAkEA/xxNTDqzHGBb5C4bhuQnwZqUbsobaw25UOEM/YQj9QEIrCOY0Niw2HRjfDGNNIv6UOEiPhVJ/bvn735O5G9NNQJBANZ5vbJWlUVzOb6h5VwcU5BQf6R3+5PVomE8aXB+ARWl6n805jJTtl8jgI5rKGLL3TF6vDJDol05cvaHcyP5AW8CQGB/fiW1lobHVDsNzc/KgddT942o2ZI3EMAtQNKsp0VH7NXgaS+mp85YyED0JWuY/0iUwHUnbGOULnmDF6iFCXkCQQCXORWA5j2vz1PazwoKTUq6SZgGXjb7gLlSeCccEywumGLkOGdK+u1u3XhqcrHyHy4iEhkaE8gqlTQzEUQlDBBvAkEA7pM6AMXZRdGL+w6fzsr18oR7flIInorc0DMerRr11HZS6nxrVd66iTxAqTs01vPgiVPDRPPSoOSA7cCWIUVBVA==-----ENDRSAPRIVATEKEY-----
-----BEGINPUBLICKEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVuvoH3yDBXhAG7KFk5aaoPKkGx2PlOfJni/uZgz/oBEgIY38P+frDL42ehjcAn6fIstZGUpZUjxwGSWqWvzA8TX964r3cIF6XT60GybDoHYRFmkLuKI3Ba560DKHgCw+0lHn/qiS12IXneSqL508qVo37TwWl86I+8hy40xyu+wIDAQAB-----ENDPUBLICKEY-----