本文介绍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