MD5 конвертировать и конвертировать обратно в текст - PullRequest
0 голосов
/ 05 декабря 2011

я хочу сохранить пароли s в базе данных, зашифрованные в md5. Как преобразовать текст в md5 с помощью c # и преобразовать его обратно в текст?

Спасибо

Ответы [ 4 ]

10 голосов
/ 05 декабря 2011

Хеширование не является шифрованием - оно необратимо.

5 голосов
/ 05 декабря 2011

Вам не нужно преобразовывать обратно в исходный пароль. Если вы хотите проверить, что пользователь ввел правильный пароль, вы должны хэшировать его попытку и сравнивать это хеш-значение с хеш-значением в базе данных. Ни в коем случае пароль в открытом тексте ни с чем не сравнится.

3 голосов
/ 05 декабря 2011

Вы не должны использовать MD5 для хеширования паролей, это очень небезопасно. Что вам нужно сделать, так это использовать пользовательскую соль и, возможно, 3 различных алгоритма хеширования, для запуска которых требуется не менее 1 секунды. Может показаться, что 1 секунда - это долго, но в этом суть. Ваш пользователь должен войти на сайт только один раз, и взломщик должен будет потратить одну минуту, пытаясь использовать только 60 различных паролей. Лично я использую специфическую для сайта соль и специфическую для пользователя соль Таким образом, если бы моя база данных была скомпрометирована, им бы все равно не хватало некоторых частей для взлома паролей.

0 голосов
/ 05 декабря 2011

Сохранение хеша пароля не означает сохранение пароля - вы не можете восстановить пароль из него. Только один путь. В противном случае это будет называться шифрованием.

Вы сохраняете что-то, что можете сравнить с хешем другого пароля, введенного позже. Если два хеша одинаковы, пароль тот же (ну, невероятно маловероятно, что это что-то еще - исключите коллизии хешей как менее вероятные, чем Gorillas для хороших алгоритмов хеширования с использованием достаточно большого пространства)

Вы можете посмотреть это обсуждение на засолка против нескольких хешей на Crypto SE.

...