我正在使用JSEncrypt加密客户端上的用户密码并发送到服务器进行解密。 我从服务器获取公钥,我使用Javascript在客户端上构建RSA密钥:
var leafCert = new X509();
leafCert.readCertPEM(publicCertificate);
在我的加密方法
中var encryptKey = new JSEncrypt();
var encryptedValue = serverPublicKey.encrypt(inputStr)
return String(inputStr)
在我解密的服务器上,我看到垃圾邮件。我的服务器端代码:
public String decryptString(String encryptedVal, String sessionId)
{
String sResult="";
try
{
PrivateKey pvtKey = getPrivateKeyFromSession(sessionId);
Cipher pkCipher=null;
pkCipher = Cipher.getInstance("RSA/None/NoPadding", "BC");
pkCipher.init(Cipher.DECRYPT_MODE, pvtKey);
Base64 encoder = Base64.getInstance();
byte[] decodedValue = encoder.decode(encryptedVal);
byte[] deCryptedBytes =pkCipher.doFinal( decodedValue );
sResult = new String(deCryptedBytes);
}
catch(Exception ex){log.error("Error decryptString" + ex.getMessage()); }
return sResult.trim();
}
你可以告诉我哪里出错了吗?我没有在服务器上看到实际解密的消息。