String encrypted = "mPgzvJKbSFgP6nRRHNlTufscZiChL2KUYaNeSF27+Dg=";
String key = "9d6ea4d3e6f8c4f8";
String salt = "1c5dd32d7ba54bdd";
String transform = "AES/CBC/ISO10126PADDING";
IvParameterSpec ivspec = new IvParameterSpec(salt.getBytes());
SecretKey secretKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance(transform);
cipher.init(Cipher.DECRYPT_MODE, secretKey, ivspec);
byte[] encryptedBytes = DatatypeConverter.parseBase64Binary(encrypted); // hash to byte[]
byte[] data = cipher.doFinal(encryptedBytes);
System.out.println(new String(data));
Now, I need to decrypt it in javascript. The code I wrote is:
var key = '9d6ea4d3e6f8c4f8';
var iv = '1c5dd32d7ba54bdd';
//var key = CryptoJS.lib.WordArray.create('9d6ea4d3e6f8c4f8');
//var iv = CryptoJS.lib.WordArray.create('1c5dd32d7ba54bdd');
//var key = CryptoJS.enc.Utf8.parse('9d6ea4d3e6f8c4f8');
//var iv = CryptoJS.enc.Utf8.parse('1c5dd32d7ba54bdd');
//var key = CryptoJS.enc.Hex.parse('9d6ea4d3e6f8c4f8');
//var iv = CryptoJS.enc.Hex.parse('1c5dd32d7ba54bdd');
//var key = CryptoJS.enc.Base64.parse('9d6ea4d3e6f8c4f8');
//var iv = CryptoJS.enc.Base64.parse('1c5dd32d7ba54bdd');
var options = {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Iso10126};
//var options = {iv: iv};
alert("key + " + key);
alert("iv + " + iv);
var encrypted = 'mPgzvJKbSFgP6nRRHNlTufscZiChL2KUYaNeSF27+Dg=';
alert("encrypted + " + encrypted);
alert("encrypted.toString() = " + encrypted.toString());
// var cipherParams = CryptoJS.lib.CipherParams.create({
// ciphertext: CryptoJS.enc.Base64.parse(encrypted )
//});
//alert("cipherParams + " + cipherParams );
//var decrypyted = CryptoJS.AES.decrypt(cipherParams, key, options );
var decrypyted = CryptoJS.AES.decrypt(encrypted.toString(), key, options );
alert(decrypyted);
alert(decrypyted.toString(CryptoJS.enc.Utf8));
But, it is throwing error. I think I have tried each and every way found.
Can somebody help me to understand what is wrong with the js code before I get crazy?