Я подумываю об изменении метода, с помощью которого мы шифруем пароли, чтобы использовать односторонний хэш, а не шифрование.Я рассмотрел использование простого «GetHashCode» в строке пароля, но MS предупреждает, что эта функция может измениться в будущем и будет отличаться в 32- и 64-разрядных ОС.Я не хочу, чтобы результат когда-либо был другим, так как это привело бы к тому, что все пароли в базе данных больше не совпадали, когда у меня есть введенное значение (например, когда мы все переходим на .NET 9.0 или что-то в этом роде).
Итак, хэш SHA1 устраняет эту проблему?Например, если я использую этот код C #:
var data = System.Text.Encoding.ASCII.GetBytes(value);
data = System.Security.Cryptography.SHA1.Create().ComputeHash(data);
return Convert.ToBase64String(data);
будет ли значение всегда и всегда одним и тем же результатом?Я не слишком беспокоюсь о столкновении в таком большом пространстве, но есть ли другая причина, чтобы рассмотреть более широкий хэш?Заранее спасибо!