JSEncrypt encrypt on client and decrypt on server

1.5k Views Asked by At

I am using JSEncrypt to encrypt user's password on the client and send to server to decrypt. I get the public key from the server which I build the RSA Key on the client with Javascript:

var leafCert = new X509();
leafCert.readCertPEM(publicCertificate);

In my encrypt method

var encryptKey = new JSEncrypt();
var encryptedValue = serverPublicKey.encrypt(inputStr)
return String(inputStr)

On server when I decrypt I see junk message. My server-side code:

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();
}

Can you let me know where am I going wrong. I do not see the actual decrypted message on the server.

0

There are 0 best solutions below