3DES EDE ECB Enryption - вывод c ++ отличается от JAVA вывод режима по умолчанию - PullRequest
0 голосов
/ 30 апреля 2020

Я использую шифрование 3des-ede-eb c из библиотеки openssl. Шифр ​​результата кодируется с использованием base64. Но результат шифрования шифрования (как base564, так и Hex-кодирования) отличается от результата любого онлайн-сайта шифрования для того же.

Например: для 1234
Вывод моей программы:

Hex : 722DDADAB2AFF81A

Base64: ci3a2rKv + Bo =

из онлайн-инструмента шифрования

Hex: 0685EBBC2E239F72

Base64: BoXrvC4jn3I =

Я могу расшифровать результат шифрования из результата моей программы до его первоначального значения (обе программы разные). И кодировка base64 правильная и проверенная.

Я что-то упускаю во время / до шифрования. Может быть, какое-то кодирование / заполнение сделано до шифрования ..

Что такое стандартное заполнение для 3des eb c ?? Любые другие шаги предварительного шифрования есть? Я не могу найти информацию об этом ..

Может ли кто-нибудь помочь мне .. заранее спасибо ..

1 Ответ

0 голосов
/ 05 мая 2020

Я нашел решение, проблема была в том, как я делал отступы. Изначально я не делал отступы. Затем я использовал PKCS5, но конкатенация значения заполнения с входом была неправильной.

Вот как я сейчас делаю заполнение. И это работает.

for(k= 0;k<PadLen;k++) sprintf((char*)(intext + InputLen +k),"%C",padValue);

paddValue - тип unsigned char.

Спасибо за помощь ..

...