Sergey Alexandrovich Kryukov
Ааааа!!! Только не снова! Я не понимаю, что не так с авторами всех подобных вопросов по хэшу (или паролям).
То криптографическая хэш-функция не предназначен для "расшифровки"!
Это один путь функция. Реверсирование его (поиск значения аргумента по изображению) - это невыполнимый Когда используется криптографическая хэш-функция, такое реверсирование (назовите его "расшифровкой", не имеет значения) является никогда не понадобиться; как раз наоборот: это требуемый чтобы сделать его неосуществимым.
Пожалуйста, смотрите:
http://en.wikipedia.org/wiki/Cryptographic_hash_function[^].
Если вам нужно шифрование и дешифрование, используйте алгоритмы шифрования.
[Правка #1]
Ах, это связано с паролями?! Пожалуйста, подумайте хорошенько: почему вы думаете, что "расшифровка" может когда-либо понадобиться для аутентификации или любой другой цели, связанной с паролем? Он никогда не нужен, потому что вам никогда не нужно хранить пароль. Идея настолько очевидна: вы храните только хэш-функцию пароля, вычисляете тот же хэш во время аутентификации и сравниваете хэш с хэшем. Никогда пароль с паролем. Таким образом, только один человек в мире знает свой собственный пароль. Это было бы так плохо, если бы кто-то еще знал. Разве это не разумно и не просто?
[Правка #2]
Пожалуйста, смотрите также мой недавний ответ: хранение паролей int значение SQL-сервера в защищенном режиме[^].
[Редактировать #3]
Что касается алгоритмов шифрования, то с.Нет у вас есть достойный выбор:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.asymmetricalgorithm[^],
http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm[^].
Для паролей я бы все же рекомендовал криптографические хэш-функции, как я уже объяснял.
Вау,
—СА