Сегодня надоедливый вопрос, я должен знать это, но для жизни меня я не могу понять. Я пытаюсь хэш-пароль перед запросом базы данных sql. У меня есть хэш-код работает отлично, однако его внутри общественной статической строки:C# SHA512/Public Static String
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;
}
У меня есть два вопроса, один .. один раз это хешируется, как я идти о получении такого результата, как, когда я пытаюсь получить доступ к переменная «хеш», которая дает ошибку, не существует в текущем контексте. Я подозреваю, что это связано с общественными и частными классами?
Кроме того, мой другой вопрос, чтобы иметь более эффективную программу, может я или это уже есть код, где через i набираю его один раз, а затем можно называть его проходящими переменными вперед и назад. вроде как, введите пароль, хеширует, затем передает его обратно. Затем в другом текстовом поле передайте новую переменную в тот же хэш-код и получите новую хешированную переменную обратно?
Спасибо заранее, ребята!
Этот код не подходит *, вы конвертируете произвольные двоичные данные (хэш) в строку с использованием Encoding.UTF8. Вы должны использовать Convert.ToBase64String (или hex). –
Почему вы не используете соленые хеши? :( – cdhowie
@cdhowie: Это для паролей? – Joey