Страница man SunOS для des (которая, кажется, основана на том, на чем основан ваш des.exe?), Указывает, что их ключ генерируется следующим образом:
Алгоритм DES требует 8-байтовый ключ, чьи младшие биты предполагаются битами с нечетной четностью. Ключ ASCII, предоставляемый пользователем, дополняется нулями до 8 байтов, а старшие биты устанавливаются как биты с нечетной четностью. Затем алгоритм DES игнорирует младший бит каждого символа ASCII, но информация этого бита была сохранена в старшем бите из-за четности.
В нем также упоминается, что начальный IV всегда обнуляется, независимо от того, в каком режиме вы работаете
Режим работы CBC всегда использует начальное значение всех нулей
для вектора инициализации, поэтому первые 8 байтов файла
шифруется одинаково в режиме CBC или ECB.
В нем также упоминается, что используемый заполнитель таков, что последний байт всегда имеет значение от 0 до 7, указывающее количество используемых байтов заполнения. Это похоже на PKCS5Padding, так что, возможно, это будет работать
Поскольку режимы CBC и ECB в DES требуют, чтобы единицы из 8 байтов были
зашифрованные, файлы, зашифрованные командой des, имеют от 1 до 8 байтов
добавлены к ним, чтобы они были кратны 8 байтов. Последний
Байт, когда расшифрован, дает количество байтов (от 0 до 7), которые должны
быть сохраненным из последних 8 байтов. Другие байты из тех, которые добавлены к
входные данные рандомизированы перед шифрованием.
В зависимости от параметров, которые вы указали, вы используете, похоже, что вы используете DES / CBC / PKCS5Padding для шифра.
Я думаю, что остается только определить, как на самом деле получить ключ. Я нашел этот пример кода в exampledepot , который может работать для вас. Я думаю, вам просто нужно преобразовать ваш строковый пароль в 8 байтов (1 байт на символ, поэтому кодировки UTF не требуется), а затем заполнить его кодом, приведенным в примере, для получения ключа. В любом случае, стоит попробовать.