Криптография SHA512 хэш в строку в C#
У меня есть код для генерации SHA512 из строки.
public static string GetCrypt(string text)
{
string hash = "";
SHA512 alg = SHA512.Create();
byte[] result = alg.ComputeHash(Encoding.UTF8.GetBytes(text));
hash = Encoding.UTF8.GetString(result);
return hash;
}
Теперь я должен преобразовать hash обратно в string. Есть идеи, как это сделать? Спасибо. 3 ответов
хэши в 1 сторону. Вы не можете получить его обратно (легко). вы, возможно, захотите, фактический шифрования.
да. Хэши односторонние. Используйте симметричные классы шифрования, такие как RijndaelManaged.
вот класс RijndaelSimple, который я использую: http://www.obviex.com/samples/encryption.asp
кэшированная версия той же ссылки находится здесь: http://webcache.googleusercontent.com/search?q=cache:WyVau-XgIzkJ:www.obviex.com/samples/encryption.asp&hl=en&prmd=imvns&strip=1
вы не можете преобразовать hash
назад к строке, из которой вы вычисляли хэш.
Если вы хотите, то вам придется сравнить хэш с каждой из целевых строк хэша.
Если один из них соответствует хэшу, то этот хэш исходит из целевой строки.
его использовать: если вы хотите сохранить passwords
на database
, вы можете хранить свои хэши вместо паролей.Поэтому, даже если хакер получает доступ к вашей базе данных, он не может получить пароль, потому что он хэшируется.Единственный способ узнать строку, через которую мы создали хэш-кода -матч нужную строку!