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

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

实现代码如下:

测试代码如下:

测试结果如下:

补充: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.具体的使用示例

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