Предполагая, что я использую этот код для генерации хэшей:
static void Main(string[] args) {
string id = Guid.Parse("8681941A-76C2-4120-BC34-F800B5AAB5A5".ToLower()).ToString();
string date = DateTime.Today.ToString("yyyy-MM-dd");
Console.WriteLine(id);
Console.WriteLine(date);
using (System.Security.Cryptography.SHA512Managed hashTool =
new System.Security.Cryptography.SHA512Managed()) {
Byte[] PasswordAsByte = System.Text.Encoding.UTF8.GetBytes(string.Concat(id, date));
Byte[] EncryptedBytes = hashTool.ComputeHash(PasswordAsByte);
hashTool.Clear();
Console.WriteLine(Convert.ToBase64String(EncryptedBytes));
}
Console.ReadLine();
}
В реальном примере я сгенерирую хэши с GUID и датой, как вы видите в примере.Я получу эти значения из базы данных.
Можно ли когда-либо получить один и тот же результат хеширования с разными значениями при таком подходе?
Редактировать:
Как я указал, я потянузначения формируют базу данных.Как вы можете догадаться, Guid - это уникальный идентификатор ключа (если я не сталкиваюсь с чудом, и сервер sql генерирует один и тот же Guid для меня несколько раз).И значение datetime будет датой оплаты для записи.Я продемонстрировал здесь с DateTime.Today
, но я точно не буду использовать это на продукт.