Мне нужно перенести некоторый код с java
на javascript
, который обрабатывает шифрование.Я не могу воспроизвести тот же зашифрованный текст, что и в существующем коде, учитывая тот же ключ.
Я подозреваю, что не могу определить правильный режим.Прикрепление фрагмента кода -
public String encrypt(String message, String enc_key) throws Exception {
try {
initEncrypt(enc_key);
byte[] encstr = cipher.doFinal(message.getBytes());
return HexUtil.HextoString(encstr);
} catch (BadPaddingException nse) {
throw new Exception("Invalid input String");
}
}
public void initEncrypt(String key) throws Exception {
try {
skeySpec = new SecretKeySpec(HexUtil.HexfromString(key), "AES");
cipher = Cipher.getInstance("AES");
// cipher.
cipher.init(1, skeySpec);
System.out.println(cipher.getAlgorithm());
} catch (NoSuchAlgorithmException nsae) {
throw new Exception("Invalid Java Version");
} catch (NoSuchPaddingException nse) {
throw new Exception("Invalid Key");
}
}
Функция HexToString просто преобразует ключ шестнадцатеричной строки в байтовый массив.
Предоставление ключа - 10663d0b39d73d614116f0b3cbebd666
(шестнадцатеричный) Простой текст- hello
, Я получаю - зашифрованный текст - 57C758B2B3A8580658A11DBD95109EC4
Согласно этому ответу so , режим по умолчанию должен быть AES/ECB/PKCS5Padding
Но когда я пытаюсь зашифровать, используя тот жезначения здесь Я получаю зашифрованный текст-
3874350661ABB0B452A4960FE3953C18
Я пробовал различные другие режимы, но я не могу сопоставить зашифрованный текст.Любая помощь будет оценена.