Lorsqu'un utilisateur s'enregistre sur notre site, nous vérifions l'adresse avec un service de validation d'adresse. Ce service peut renvoyer une suggestion d'adresse si l'adresse entrée est trouvée mais comporte quelques erreurs. Cette suggestion est renvoyée à l'utilisateur.Vérifier si l'utilisateur a modifié les données
L'utilisateur peut accepter la suggestion et est approuvé. S'il change l'adresse, il n'est pas fiable.
Y at-il un bon moyen de vérifier si les données affichées à l'utilisateur sont les mêmes que les données qu'il publie? Je suppose que j'ai besoin d'un champ caché avec le hachage des addressdata. Mais je ne suis pas sûr quel algorithme je devrais prendre. L'algorithme devrait être insensible à la casse si possible.
L'algorithme doit créer un hachage unilatéral inviolable.
EDIT:
Cela a fonctionné assez bien jusqu'à présent. Je dois encore tester avec umlaute (ä, ü).
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
Le CRC32 peut être altéré. J'ai besoin d'un hachage sûr à sens unique. –
@ Mathias Fritsch: Considérons MD5. – Dor