Go语言 如何实现RSA加密解密
程序员文章站
2022-03-20 15:51:56
rsa是一种非对称加密算法,它的名字是由它的三位开发者,即ronrivest、adishamir和leonardadleman 的姓氏的首字母组成的(rivest-shamir-adleman ),可...
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.具体的使用示例
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
上一篇: 什么是ruby和Ruby概述