RSA2实例详解

本文详细讲解RSA2加密解密过程,重点介绍2048位密钥的使用,对比RSA的增强安全性。内容包括RSA2的理论基础,密钥生成,以及针对明文长度限制的解决方案。提供Java、Python、C/C++相关代码示例,并分享了处理超长明文的技巧。
摘要由CSDN通过智能技术生成

本文介绍RSA2加密与解密,RSA2是RSA的加强版本,在密钥长度上采用2048, RSA2比RSA更安全,更可靠, 本人的另一篇文章RSA已经发表,有想了解的可以点开下面的RSA文章, 但RSA2在明文的加密数据长度上有个小缺陷,只能对不超过密文长度的明文进行加密

实例下载

工具集下载

RSA文章: http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=322

关于RSA2的理论其实与RSA类似,想具体了解的可以参考上面的链接,下面直接上代码

 

函数test1中使用RSA2的私钥对数据进行加密,使用RSA2的公钥对数据进行解密

下面代码中的密钥字符串是对密钥字节数组进行了base64加密而得到的,在使用时将密串进行base64解密即可

复制代码

//私钥加密,公钥解密
public static void test1(String src){
    try {
        //1.初始化密钥
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(1024);
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();
        RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();
         
        //String strPublicKey = Base64.encodeBase64String(rsaPublicKey.getEncoded());
        //String strPrivateKey = Base64.encodeBase64String(rsaPrivateKey.getEncoded());
         
        String strPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgdQVFyYvJQ38hBAEJ3Zr3BJFtp
         XauN83ghWtgJ1m92XvshGomjEgKpAxyQf9HqqvZB8U0nW+eNIgTAcKZemIQci/6/+oXMhu+WgdIxlJGLzvhZWa
         z7UzfKfCFTiUAh6X+hHRlPisekt/y70pbpkxd+GVbmVF5bGxSBnlhdnKa+lAbZd2sO8jv3fzSD0w3dWDmjKg9O
         jPxXt1jnwbj0BmwN4TDiMPSmmDBEz7JHadb6A99cswCVXWz3pgioHzq20ipDZDUdAphtgcyT6TO1eZdwHth1tw
         0UIcPfUmx5wMGSVBkP/42/AnvG8Y9ROwvg9XpCu2HI+o/n7Ljht5tknDKwIDAQAB";
          
        String strPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值