java openssl库_Java OpenSSL生成的RSA公私钥进行数据加解密详细介绍

项目: JAVA生成的RSA的密文,通过C++来解密。

RSA这里就不多介绍了大家自己去看。

JAVA也是通过包来实现加密和解密的,那么我的C++是通过OPENSSL的库来实现的。

重点来到了:RSA使用过程

1、C++随机生成一对公钥和私钥

2、JAVA用公钥给明文打包形成密文

3、C++用私钥解密密文

这个是我整个项目的解决思路,其他项目是否这样,我不太清楚。但是JAVA和C++的私钥格式一定要搞清楚,他们不是一一对应的。

什么意思?

参考文档:http://www.jb51.net/article/98849.htm(非常重要的文档)

就是钥匙本身的格式也有很多种的~

密钥都对的情况下,还要注意一个编码模式问题:我采用的是RSA_PKCS1_PADDING

JAVA: cipher= Cipher.getInstance("RSA/ECB/PKCS1Padding");

C++:

if(RSA_private_decrypt(rsa_len,(unsigned char *)str,(unsigned char*)p_de,p_rsa,RSA_PKCS1_PADDING)<0){

return NULL;

}

密钥和打包模式都一致的情况下,密文是什么,密文是一对看不懂的乱码,而JAVA通常会给再编码:base64编码。

通过BASE64解码后,再解密,一切问题解决。

其他参考文档:

http://www.cppblog.com/sleepwom/archive/2010/01/11/105418.html(参考文档)

https://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.html

AES:https://www.cnblogs.com/wanghaiyang1930/p/5474889.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值