Сделать зашифрованную строку такой же длины, как входная строка? - PullRequest
5 голосов
/ 24 ноября 2010

У меня есть строка из 15 цифр для шифрования.

Я пытался использовать различные функции шифрования .NET, но все мои зашифрованные строки имеют длину не менее 24, 28 или 32.

Я слышал о CipherMode.CTS с Padding = None, который выдает ту же длину, что и длина ввода, но я не могу получить тот же результат. Я играл с размером блока, размера ключа и размера соли.

Я не против добавить цифру в мою строку ввода, чтобы сделать ее длиной 16.

Кто-нибудь знает обходной путь?

Ответы [ 2 ]

3 голосов
/ 24 ноября 2010

Если вы используете режим ECB, он округляет вход до следующего кратного размера блока, а затем выдает точно такой же размер вывода.

Практически любой другой режим включает / использует инициализациюВектор (IV), который делает выход на один блок больше, чем вход (опять же, после того, как вход был округлен до следующего, кратного размеру блока).

Большинство потоковых шифров выдают результат, который точно такой жеразмер в качестве входных данных - но в типичных библиотеках шифрования потоковые шифры встречаются гораздо реже, чем блочные шифры.Одна из причин заключается в том, что распределение ключей является гораздо более серьезной проблемой для потоковых шифров (при использовании одного и того же ключа дважды с потоковым шифром возникает главная дыра в безопасности).

2 голосов
/ 24 ноября 2010

Кодовое слово Сохраняющее формат шифрование . К сожалению, я не знаю ни о каких реализациях .NET (у фреймворка, конечно, их нет).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...