Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
А надо ли??? Иногда очень даже полезно выдавать именно то,... 24.05.04 11:14 Число просмотров: 1793
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Вот тут, захотелось попрактиковаться в криптографии, типа > шифрацию файлов написать. > Вроде все просто, спрашиваем у юзверя пароль, вставляем его > в алгоритм шифрования и понеслась. > Вроде все ок, но вот как автоматизировать проверку пароля > на правильность, а то получается белеберда, при > расшифровке, если вести неправильный пароль то, прога > выводит белетристику. Понятно что это из-за того что > расшифровка проводится не на том ключе :(((( > В общем как отметать при неправильном вводе пароля?
А надо ли??? Иногда очень даже полезно выдавать именно то, что получилось.
> Первая мысль, хранить пароль в шифруемом файле? Но имхо, > это не есть гут, его же оттуда достанут ?
Идея проста - после расшифровки проверить что получилось. Первый вариант в том случае, если шифруемые данные заведомо обладают какими-то свойствами, например сигнатурой в определенном месте или обладают свойством текста - все символы только буквы, знаки препинания, пробелы и при применении неправильного пароля на расшифровку гарантированно получатся непечатные символы, тогда после расшифровывания проверить это свойство. В противном случае нужно это свойство создать. Вариантов много: самый простой - приписать сигнатуру (в начало или в конец не важно, хоть в середину, главное знать где потом искать), состоящую, скажем, из наименование алгоритма, номера версии реализации, можно даже самого пароля - не страшно, но не желательно. Чуть посложнее - приписать ЦРЦ, поскольку его считать надо, проверять, опять же. Ну а после расшифровки проверить эту сигнатуру. Если все нормально - "выкусить" ее и направить расшифрованные данные куда надо. Ну а если сигнатура не совпала - значит пароль не подошел или шифровка была измененна, выдаем соответствующее сообщение об ошибке.
Есть еще вариант, который используется во многих упаковщиках - к шифровке приписывается хэш от пароля. При расшифровке проверяем хэш - если не совпал, то и расшифровывать не пытаемся. Стойкость всего метода шифрования будет складываться из стойкости хэша (если атака будет приходится на него) и метода шифрования данных.
|
|
|