I have Java code which does AES and I am trying to implement same in jQuery using cryptoJs. But the output varies in jQuery. I am not able to figure it out where I am doing it wrong. I am new to encryption, please help me out.
Java Code
public static String Encrypt(String text, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] keyBytes = new byte[16];
byte[] b = key.getBytes("UTF-8");
int len = b.length;
if (len > keyBytes.length) len = keyBytes.length;
System.arraycopy(b, 0, keyBytes, 0, len);
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] results = cipher.doFinal(text.getBytes("UTF-8"));
String result = Base64.encodeToString(results, 0);
return result;
}
JavaScript Code
var plainText = "abc"
var password = "password";
var key = CryptoJS.enc.Hex.parse(password);
var iv = CryptoJS.enc.Hex.parse(password);
var encrypted = CryptoJS.AES.encrypt(plainText, key, { iv: iv });