zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    线段树总结
    c语言实现按层次(广度优先)非递归遍历二叉链树
    三、初学.NET—Gridview的分页
    五、初学.NET—Gridview自动编号和鼠标停留行加背景
    四、初学.NET—Gridview外部按钮选中、删除一行
    二、初学.NET—Gridview的排序
    一、初学.NET—数据库连接字符串
    .net web study
    C# 接口
    c#索引器
  • 原文地址:https://www.cnblogs.com/kikizhong/p/7910624.html
Copyright © 2011-2022 走看看