![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Доброго времени суток!
Нужно было добавить возможность шифрования файлов в своей программе (она путешествовала вместе с флешкой). Программа приобрела более нужные и полезные функции и была переписана с Delphi на С# , однако вохможность шифрования я так и не реализовал. В философии криптографии и "аутентичности" я ещё совсем зеленый) Алгоритм для шифрования данных ,найденный мною, использовал 2 функции, шифровку и некий обратный аналог - дешифровку. Для программы я счел удобным шифруемые файлы удалять а их место занимали зашифрованные с добавленным расширением , которое по желанию пользователя можно было добавить в систему(в реестр) и файлы с таким расширением открывались бы моей программой. Но вот в чем беда, если пытатся дешифровать файл неверным паролем - получим кучку непригодного мусора, и для восстановления его в первоначальный вид потребовалось бы очень много усилий. Получается программа должна была сообщать юзеру что пароль неверный.Но как сохранить верный пароль? Можно к файлу добавлять зашифрованный пароль , которым пользователь шифровал основной файл, но есть свои НО. Ведь шифровать пароль нужно ещё 1ним паролем, а его прийдется вшить в программу , и соттветственно вытащить его оттуда не составит больших проблем.И вся работа коту под хвост ![]() В общем я остановился на 2х вариантах: 1) Шифровать пароль паролем , при попытке расшифровать файл, сначала открыть секцию с паролем, если пароль введенный юзером совпадает с результатом расшифровки тогда пароль верный и можно расшифровывать основной файл 2) В конец файла добавлять 2 секции. 1 аналогична 1вому варианту, 2рая - сгенерировать "стойкий" пароль для шифрации основного файла, и этот "стойкий" пароль зашифровать паролем юзера. Дешифрация : Проверяем совпадают ли введенный пароль и дешифрация, дешифруем стойкий пароль, дешифруем файл. Цвета обозначены. Хотелось бы знать ваше мнение , услышать советы или идеи) ПС. В дополнении к заголовку хотелось бы найти алгоритм , при котором шифруемый текст оставался читабельным и копируемым без всяких ˚ǒả█▐ , наверно некое подобие замены по таблице. Последний раз редактировалось Lime; 21.06.2010 в 04:29. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
почитай про алгоритм с открытым ключем... вроде называется RSA...думаю поможет))
|
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Это один и мульена способов. Я однажды так и поступил.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Добавлю ещё. Именно так и поступают архиваторы. А хранить настоящий пароль внутри программы (В ЛЮБОМ ВИДЕ) - моветон и гарантированная "дырка" в безопасности. |
|
![]() |
![]() |
![]() |
#5 | ||
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]() Цитата:
Шифровка: 1)Генерируем строку( скажем 20 символов) 2)Вычисляем CRC 3)Шифруем файл 4)Прицепляем к файлу шифрованную строку 5)Прицепляем к файлу CRC строки Дешифровка: 1)Дешифруем введенным паролем шифрованную строку (п4) 2)Вычисляем CRC , сравниваем с прикрепленной CRC (п5) 3)Если все отлично дешифруем файл введенным паролем. Верно? Звучит довольно заманчиво, вот только всякие хеши crc и md5 пугают меня) что-то слишком заумное для понимания ![]() Цитата:
![]() Я так понял RSA больше подходит для передачи информации (по сети к примеру) к тому-же скорость шифра маленькая. |
||
![]() |
![]() |
![]() |
#6 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Алгоритмы описаны - бери и пользуйся Цитата:
![]()
I'm learning to live...
|
|||
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]() ![]() А разве это тривиальная задача? Высислить каким алгоритмом, ключем зашифрована информация) + сама информация и есть пароль) Как по мне - выглядит серьёзно ![]() Цитата:
Вот например гуглил по теме шифрации текста, всяких примеров с xor'aми итд итп насмотрелся, а вот работать они не работают как должны, либо автор/копипастер не указал ньюансы и подводные камни. В итоге зашифровав случайную строку неким паролем, при дешифрации в 80% получаю потерю символов 5% вообще неверный результат 15% зашифрованная строка нечитабельна/не копируема. Последний раз редактировалось Lime; 21.06.2010 в 14:11. |
|
![]() |
![]() |
![]() |
#8 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
![]()
Почитайте информацию о цифровой подписи, там тоже реализован алгоритм RSA (ИМХО он простой и эффективный, хотя есть и другие)
Не нужно создавать второй пароль! Да, этот пароль будет храниться на флешке, но в зашифрованном виде. Примером может служить зашифрованный архив RAR, кто-нибудь пробовал его расшифровать? Хотя и пароль хранится в самом архиве, нельзя его оттуда вытянуть "холодным" способом, только перебором
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
методы шифрование данных - строки | ArniLand | Общие вопросы C/C++ | 1 | 20.05.2010 20:20 |
Шифрование данных | didar_ | Общие вопросы Delphi | 2 | 07.11.2009 12:24 |
Шифрование данных | frayerok | Общие вопросы C/C++ | 0 | 20.10.2008 22:35 |
Шифрование данных ASCII кодом на Assembler | Cerebrate | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 26.02.2008 13:56 |
Хранение и шифрование данных | Paul Hindenburg | БД в Delphi | 1 | 20.08.2007 09:04 |