Я пытаюсь реализовать логику дешифрования и знаю, что зашифрованная строка была создана с использованием:
Ключ: 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
Программисты JAVA общаются здесь
-
Anonymous
1728014747
Anonymous
Я пытаюсь реализовать логику дешифрования и знаю, что зашифрованная строка была создана с использованием:
Ключ: 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));
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/20580111/decryption-using-aes-256-with-key-and-salt-values[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия