我正在尝试使用 JCrytion 3.0.1 加密 javascript 中的数据,然后通过 java 在服务器上对其进行解密。我的问题是如何使用需要 Byte[] 处理的 Cipher 类在 java 中获取加密字符串来解密它。
这就是我从 java 生成密钥的方式
final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
final KeyPair key = keyGen.generateKeyPair();
然后解密我使用的数据
public String decrypt(byte[] text, PrivateKey key) {
byte[] dectyptedText = null;
try {
final Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, key);
dectyptedText = cipher.doFinal(text); // this is where I get error when trying to use getBytes() to convert encrypted string to byte[]
} catch (Exception ex) {
ex.printStackTrace();
}
return new String(dectyptedText);
}
这是我在客户端的 javascript
var encryptedUser = $.jCryption.encrypt(username, keys);
var encryptedPassword = $.jCryption.encrypt(password, keys);
alert("Start Submiting");
$.ajax({
url: "LoginAuthentication",
data:{username:encryptedUser, password:encryptedPassword},
type:'POST'
}).done(function(){
alert("Successfully Access !!!");
});
我尝试使用 getBytes() 但它不起作用
它适用于我测试的其他文本。我唯一的问题是如何使用 JCryption 将加密字符串从 javascript 转换为 byte[] 以在 Java 中对其进行解密。
谢谢你