关于cryptopp加密库RSA加密算法的简单应用

Cryptopp 库是一个免费的C++加密方案类库,支持多种加密算法,如RSA、AES、MD5、BASE64等。最近的项目中需要应用RSA加密,所以研究了下这方面的应用。

cryptopp在github上的地址为https://github.com/weidai11/cryptopp,自带的实例程序非常的全面,包含了所有加密算法的示例,在windows平台可以直接用vs打开编译,无需加载其他第三方库。

cryptopp中的rsa加密,在示例程序cryptest工程中可以找到,对应的方法分别是:GenerateRSAKey(生成公私钥文件)、RSAEncryptString(以公钥文件加密)、RSADecryptString(以私钥文件解密)。其中公私钥还可以以以字符串的形式直接加载,区别在于使用的使用的钥匙源不同,文件钥匙类为FileSource,字符串钥匙类为StringSource。

RSA的钥匙还分为了16进制bigint类型数据和base64类型数据,在生成或者加载钥匙时,使用不同的解析类来区分不同的钥匙类型,16进制型钥匙解析类为HexDecoder、HexEncoder,base64型钥匙解析类为Base64Decoder、Base64Encoder。

客户端使用RSA加密通常要跟服务器端进行交互,服务器端多为java、.net等编写,在java和.net语言中的RSA加密算法通常使用的是PKCS标准进行加密解密,而cryptopp的实例程序中使用的是SHA1标准,所以如果要跟java的RSA加密算法可以互相解密密文,则cryptopp中也需要以PKCS标准进行加密解密,具体方法是将RSAES_OAEP_SHA_Decryptor/RSAES_OAEP_SHA_Encryptor替换为RSAES_PKCS1v15_Decryptor/RSAES_PKCS1v15_Encryptor

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

砖农L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值