rsa.js使用了http://www.ohdave.com/rsa/,页面需要引入:
<script src="lib/rsa/BigInt.js"></script> <script src="lib/rsa/Barrett.js"></script> <script src="lib/rsa/RSA.js"></script>
js来源于http://www.ohdave.com/rsa/.
前台加密:注意setMaxDigits要与后台的key size一一对应,如:
if (keySize == 128) { setMaxDigits(19); } else if (keySize == 256) { setMaxDigits(38); } else if (keySize == 512) { setMaxDigits(76); } else if (keySize == 1024) { setMaxDigits(130); } else if (keySize == 2048) { setMaxDigits(260); }
// e d m key = new RSAKeyPair( "e(16进制)加密", "d(16进制)解密", "m(16进制)模数" ); var pwd2=encryptedString(key, '123456'); console.log("-encry pwd="+pwd2); console.log("-pwd="+decryptedString(key,pwd2));
后台需要bouncycastle jar包。后台解密可以参考http://793404905.blog.51cto.com/6179428/1557298。js中的e,d,m如下:
System.out.println("E="+publicKey.getPublicExponent().toString(16));
System.out.println("D="+privateKey.getPrivateExponent().toString(16));
System.out.println("M="+publicKey.getModulus().toString(16));
全文完。