Я пытаюсь реализовать логику дешифрования и знаю, что зашифрованная строка была создана с использованием:
Ключ: 8d6ea4d3e6f8c4f8641516baa5e42b85
преобразование: AES/CBC/ISO10126PADDING
salt: 1c4dd21d7ba43bdd
итерации: 0
Зашифрованная строка: JO0blEp+nEl5nNhgUqoZRJNecogM1XHIXUCatPOJycs=
Здесь приведены образцы ключа и соли. Главное — показать формат, в котором я имею эти данные. методы шифрования основаны на поставщике JCE по умолчанию для JDK (SunJCE).
Теперь, основываясь на приведенной выше информации, я пытаюсь построить логику дешифрования. Немного сомнений:
1. Поскольку используется AES-265, может ли он иметь 128-битные значения ключа и 64-битные значения соли? или я неправильно интерпретирую информацию.
2. увидев зашифрованную строку, похоже, что это значение в кодировке Base64, и нам нужно декодировать его во время расшифровки. Правильно ли я понимаю?
3. Ниже приведена логика дешифрования, которую я пишу, которая выдает ошибку: «javax.crypto.BadPaddingException: данный конечный блок не заполнен должным образом», когда я вызываю функцию doFinal().
и меня поразили последние три дней:( . Не могли бы вы указать или дать мне точный код, который будет использоваться здесь для расшифровки с наличием информации:
public static void main(String[] args) throws Exception
{
String encstring = "JO0blEp+nEl5nNhgUqoZRJNecogM1XHIXUCatPOJycs=";
String salt1 = "1c4dd21d7ba43bdd";
String keyStr = "8d6ea4d3e6f8c4f8641516baa5e42b85";
byte[] keyBytes = Hex.decodeHex(keyStr.toCharArray());
SecretKey secret2 = new SecretKeySpec(keyBytes, "AES");
byte[] iv = new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
AlgorithmParameterSpec params = new IvParameterSpec(iv);
Cipher cipher2 = Cipher.getInstance("AES/CBC/ISO10126PADDING", "SunJCE");
cipher2.init(Cipher.DECRYPT_MODE, secret2, params);
byte[] encryptedString = Base64.decodeBase64(encstring.getBytes());
byte[] plaintext1 = cipher2.doFinal(encryptedString);
System.out.println(new String(plaintext));
}
}
Подробнее здесь: https://stackoverflow.com/questions/205 ... alt-values
Расшифровка с использованием AES 256 со значениями ключа и соли. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение