Я еще работаю с программой на RC4 C ++, чтобы быть совместимым с аргументами командной строки.Мне было интересно, если кто-то может указать мне в направлении какой-то достойной документации о том, как командная строка openssl rc4 использует соли при шифровании против дешифрования, так что я могу включить некоторую совместимость в свою программу.Благодаря некоторой помощи от кого-то, кто находился здесь несколько дней назад, моя программа совместима с несоленной версией, как только включена функция EVP_bytestokey.Я посмотрел на функцию EVP_bytestokey, которую использует openssl, и документация показывает, что он может принимать солт-параметр:
"Солт-параметр используется как солт при выводе: он должен указывать на 8-байтовый буферили NULL, если соль не используется. "
Я создал массив неподписанных символов с солью, которую дал мне CLI, и сохранил их в массиве как их ASCII-эквиваленты для передачи (в EVP_bytestokey) какПараметр соли.Затем я сравнил размеры файлов и показал, что зашифрованная / соленая версия файла на 16 байт больше, чем исходный файл.Похоже, что версия CLI добавляет к файлу «salted__», но это только 8 из 16 байтов.У кого-нибудь есть идеи, откуда взялись бы дополнительные 8 байтов?Насколько я понимаю, соль ставится перед парольной фразой перед передачей в генератор потока ключей для RC4_setkey, поэтому я не понимаю, почему размер файла должен быть изменен, кроме "salted __".
Кроме того, сделайтеВы думаете, что я иду в правильном направлении с массивом SALT, сохраняя шестнадцатеричные значения как эквиваленты ASCII?
У меня есть документация для функций C, используемых здесь, но я не могу найти что-то конкретноео механике версии CLI, поэтому я был бы признателен за любую помощь, которую я могу получить здесь.