AES encrypt in java and decrypt in javascript

1,985 views
Skip to first unread message

rsvi...@gmail.com

unread,
Dec 20, 2013, 7:15:37 AM12/20/13
to crypto-co...@googlegroups.com
Hi Everybody,

I have a code in Java where encryption is going on:


                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?
Reply all
Reply to author
Forward
0 new messages