Длина зашифрованной строки

Java 8 Lambda сокращает сортировку.

Collections.sort(stdList, (o1, o2) -> o1.getName().compareTo(o2.getName()));
15
задан Agnel Kurian 19 January 2009 в 10:39
поделиться

3 ответа

Блочные шифры, такие как DES, 3DES и AES могут только воздействовать на блоки байтов. DES и 3DES воздействует на блок 8 байтов и AES на блоках 16 байтов.

Для обработки этого Вы обычно применяете обратимое дополнение к своему простому тексту прежде, чем зашифровать его. Это главным образом всегда будет "PKCS" - дополняющий (также названный PKCS5-или PKCS7-дополняющий).

PKCS-дополнение добавляет по крайней мере один байт, таким образом, что заполненный текст имеет длину, делимую с длиной блока (8 байтов для 3DES). Значение дополнительных байтов является числом добавленных байтов. Fx. ABCDEF дополнен к ABCDEF0505050505, и 0011223344556677 дополнен к 0011223344566770808080808080808. Обратите внимание, что это легко удалить: Вы просто смотрите на заключительный байт заполненных байтов, проверяете, что это между 1 и длина блока, и удалите то число байтов от конца (проверяющий, что каждый удаленный байт имеет правильное значение).

Наконец, для ответа на вопрос: Принятие Вас использует 3DES с шифрованием CBC и PKCS-дополняет - который Вы, вероятно, - шифрование строки длины n будет иметь длину:

n + 8 - (n % 8)
23
ответ дан 1 December 2019 в 02:29
поделиться

Тройной DES использует три 56-разрядных ключа DES, давая ключи на 168 битов. Это - размер блока, 64-разрядные .

1
ответ дан 1 December 2019 в 02:29
поделиться

Используя Тройной DES не изменяет длину строки, но это будет округлено к следующей границе на 64 бита. Если Вы будете намереваться "отобразить" его, то у Вас будет к закодированному он (как в Base64 все же.

Что касается других алгоритмов, это - трудный ответ ot, поскольку существуют много. Блочные шифры будут всегда заполнять вход для соответствия их размеру блока, тогда как много поточных шифров не будут.

4
ответ дан 1 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: