Когда пользователь регистрируется на нашем сайте, мы проверяем адрес с помощью службы проверки адресов. Эта служба может вернуть предложение адреса, если введенный адрес найден, но есть ошибки. Это предложение возвращается пользователю.
Пользователь может принять предложение и ему доверяют. Если он меняет адрес, ему не доверяют.
Есть ли хороший способ проверить, совпадают ли данные, отображаемые пользователю, с данными, которые он публикует? Я думаю, мне нужно скрытое поле с хешем адресных данных. Но я не уверен, какой алгоритм мне следует использовать. Алгоритм должен быть нечувствительным к регистру, если это возможно.
Алгоритм должен создать защищенный от взлома односторонний хеш.
EDIT:
До сих пор это работало довольно хорошо. Я все еще должен проверить с умляутом (ä, ü).
StringBuilder addressData = new StringBuilder();
addressData.Append(FirstName);
addressData.Append(LastName);
addressData.Append(StreetNumber);
addressData.Append(StreetName);
addressData.Append(City);
addressData.Append(CountryISO);
addressData.Append(Zip);
string stringVal = addressData.ToString().ToLower();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] keyByte = encoding.GetBytes(ApplicationConfiguration.ShaKey);
byte[] messageBytes = encoding.GetBytes(stringVal);
HMACSHA256 hmacsha256 = new HMACSHA256(keyByte);
byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
string hash = ByteToString(hashmessage);
return hash