欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go语言 如何实现RSA加密解密

程序员文章站 2022-03-20 15:51:56
rsa是一种非对称加密算法,它的名字是由它的三位开发者,即ronrivest、adishamir和leonardadleman 的姓氏的首字母组成的(rivest-shamir-adleman ),可...

rsa是一种非对称加密算法,它的名字是由它的三位开发者,即ronrivest、adishamir和leonardadleman 的姓氏的首字母组成的(rivest-shamir-adleman ),可用于数据加密和数字签名。

用于数据加密时,消息发送方利用对方的公钥进行加密,消息接受方收到密文时使用自己的私钥进行解密。

实现代码如下:

测试代码如下:

测试结果如下:

Go语言 如何实现RSA加密解密

补充:golang中关于rsa加密、解密、签名、验签的总结

golang中关于rsa的加密、解密、签名、验签的使用主要在于使用x509及rsa package下相关的方法。

是本人对一般常用的加/解密、签名/验签、hash的封装库,欢迎大家使用。

以下总结相关的各种变化类型:

1.秘钥、加密/签名字符串加密的格式

目前主要见到有hex及base64

(1)hex

针对hex的加解密

(2)base64

2.私钥的格式

解析私钥的方式如下:

(1)pkcs1

(2)pkcs8

3.采用的数字签名算法sha

以下为rsa sign的不同说明:

(1)sha1

(2)sha256

4.rsa使用类型

主要有加密/解密、签名/验签4种方式,且加密/解密与签名/验签均是一个相反的过程。两对是根据对公钥及私钥的使用划分的。

加密/解密是采用公钥加密,私钥解密。

签名/验签是采用私钥签名,公钥验签。

(1)加密

(2)解密

(3)签名

(4)验签

5.具体的使用示例

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。