![]() |
C/С++ | Крипто алгоритм ГОСТ (28147-89).
На сайте www.vipul.net/gost/ есть файл для языка С. Он не компилируется в MS Visual C (6 net 2003/2005) но нормально работает в CodeBlocks.
Вопрос в следующем, как на его основе создать консольную шифровалку по такому принципу - gost.exe ischod.txt pass shufrovanya.txt ? В моем понимании я считываю файл в переменную шифрую и сохраняю в новый файл. Подскажите кто знает. |
Во-первых, прфеикс *Практика* был выбран неверно. (Согласно рекомендация hasherfrog).
Во-вторых, с какими ошибками оно не компилируется в VC6? В-третьих, ГОСТ определяет, как минимум 3 варианта шифрования (вернее, 2 метода шифрования и один хэширования). Какой из них вас интересует? Все три метода в исходнике есть, даже с краткими пояснениями, что делается. Цитата:
Ну и последнее, ключ должен быть 256-битным. Что требует ОЧЕНЬ длинного пароля, если его использовать в качестве ключа. Порядка 40 цифро-буквенных символов. Можно, конечно, применять его хэш. Но наверное, это снизит общую криптостойкость. |
Спасибо за отзыв ivank.
Цитата:
Я обязательно ознакомлюсь с рекомендациями hasherfrog. Цитата:
Вот Код:
--------------------Configuration: Crypto_gost - Win32 Debug-------------------- Ещё вопрос по VC6: известно, что библиотеки внешние подключаются через среду разработки Project>Settings> вкладка Link> поле Object/library modules но есть ещё способ (наверно и не один) подключения через исходник, оператором pragma или другим. Как? На этом фоне CodeBlocks справляется замечательно, он просто создаёт ехе. Но что этот файл делает? Говорит мне что Цитата:
Цитата:
Вот как мне это видится Код:
const char *F1="Source.txt",*F2="Dest.enc"; Цитата:
Народ, какие будут соображения? |
Admiral
Гм... Он говорит, что нет функции main. А нет её, потому что не определён макрос TEST при сборке. Вы вообще исходник читали? All tests passed он пишет, потому что в main'е реализовано примитивное тестирование: рандомным ключом шифруются и дешифруются рандомные же данные, а затем сравнивается что было и что есть. Вы так и не ответили: какой именно алгоритм шифрования вам нужен? Их таки три, в приведённом исходнике реализованы 2, третий (самый простой и видимо нестойкий) не проблема реализовать самостоятельно с использованием функций оттуда. Поищите в Яндексе "ГОСТ шифрование". Там дофига объяснений как работает гост. Вам нужны функции gostcfbencrypt/gostcfbdecrypt либо gostofb (одна и та же для шифрования и расшифрования). Если вы понимаете алгоритм, то по параметрам абсолютно ясно как их использовать. Цитата:
update Цитата:
|
Реализацию алгоритма ГОСТ 28147-89 на С++ вы можете найти на сайте http://www.getsoft.com.ua в разделе ИСХОДНИКИ.
|
Gets раздел исходники не работают, только зря зарегился(
О нашел, для тех кто не смог найти, здесь: http://vuithelp.ru/files/3644.html есть прога шифрует и дешифрует по ГОСТ 28147-89, правда написано на C++ Buiilder |
вот тут нашел более приятную реализацию
http://www.plati.ru/asp/pay.asp?idd=154413 |
Время: 13:54. |
Время: 13:54.
© OSzone.net 2001-