Мне нужно зашифровать в Javascript и расшифровать в Java, но когда я зашифровываю в Java, текст отличается, я использовал другой скрипт, но тот же алгоритм, AES-128 CBC Zero Padding.
Это для Javascript и Java 7 в Intellij IDEA
Javascript:
var message = "3258";
var key = "CLAVE00000000000";
var iv = "VECTOR0000000000";
var ciphertext = CryptoJS.AES.encrypt(message, key, {iv: iv, padding: CryptoJS.pad.ZeroPadding, mode: CryptoJS.mode.CBC});
alert(ciphertext.toString());
var decrypt = CryptoJS.AES.decrypt(ciphertext, key, {iv: iv, padding: CryptoJS.pad.ZeroPadding, mode: CryptoJS.mode.CBC});
alert(CryptoJS.enc.Utf8.stringify(decrypt).toString());
Java:
KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM);
keyGenerator.init(AES_128);
String key = "CLAVE00000000000";
String IV = "VECTOR0000000000";
System.out.println("1. Message to Encrypt: " + new String(message, StandardCharsets.UTF_8));
byte[] cipherText = encrypt(key, IV, message);
System.out.println("2. Encrypted Text: " + Base64.getEncoder().encodeToString(cipherText));
byte[] decryptedString = decrypt(key, IV, cipherText);
System.out.println("3. Decrypted Message : " + new String(decryptedString));
Я ожидаю, что зашифрованный текст идентичен в Javascript или в Java, но значения отличаются