Какой длины в string должен быть ключ который используется в DES встроенной в Java? Cipher DES = Cipher.getInstance("DES");
byte[] decodedKey1 = java.util.Base64.getDecoder().decode(key);
SecretKey originalKey1 = new SecretKeySpec(decodedKey1, 0, decodedKey1.length, "DES");
DES.init(Cipher.ENCRYPT_MODE, originalKey1);
byte[] line = input.getBytes("UTF-8");
byte[] encryptedDes = DES.doFinal(line);
Вот такой простой код.
Почему он не принимает ключ с длиной 7 ? Вроде ключ там обычно 56 битов, а это 7 символов ?

21 Авг 2019 в 07:11
225 +1
0
Ответы
1

В DES с использованием Java, ключ должен быть длиной 8 байт, что эквивалентно 64 битам. Однако в Java ключ обычно представляется в виде строки, поэтому при использовании Base64 кодирования для представления ключа в виде строки, его длина будет больше 8 символов.

Если вы хотите использовать ключ длиной 7 символов, вам нужно добавить дополнительный символ до 8 для соответствия требованиям длины ключа в DES. В противном случае, Java будет выдавать ошибку при попытке использовать ключ неправильной длины.

Итак, для использования ключа длиной 7 символов в DES в Java, добавьте один дополнительный символ до 8 символов.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир