Предполагая, что вы не используете ECB, самым простым способом было бы удалить первые 8 байтов зашифрованного текста. Первые 8 байтов (64 бита) — это солевой одноразовый номер. Это также младшие 64 бита IV. Старшие 64 бита IV равны нулю.
Обратите внимание: не солить ваши сообщения — очень плохая практика и слабая сторона безопасности. (Дополнительную информацию см. в Википедии). Вы говорите, что вам нужно шифрование, которое имеет ту же длину зашифрованного текста, что и длина открытого текста. Это в основном говорит о том, что вам нужно слабое шифрование. Это зависит от вас, но мой совет: тщательно обдумайте свои требования, прежде чем продолжить.
Альтернативным методом может быть создание собственного режима цепочки и регистрация его в криптографической библиотеке. Например, если вам нужен CBC без соли, создайте класс-потомок от TCBC (модуль TPLB3.CBC) и просто переопределите функцию ChainingFeatures(), чтобы добавить функцию cfNoNounce. Обратитесь к встроенным комментариям в модуле TPLB3.BlockCipher. Тем не менее, я рекомендую первый метод.
Вы также можете прочитать ответы на связанные вопросы:
Также обратите внимание, что если вы используете режим цепочки ECB, соли нет, если этот режим имеет функцию cfNoNounce автоматически. (ECB — это плохо. Не используйте его, кроме как для тестирования).
Сноска:
Я являюсь основным автором TPLockBox 3 и поддерживаю версию библиотеки по адресу:
Я предполагаю, что вы используете эту версию, а не версию SourceForge. Я ожидаю выпустить версию 3.6.0 7 ноября 2014 года.
person
Sean B. Durkin
schedule
06.11.2014