當用戶在我們的網站註冊時,我們使用地址驗證服務來檢查地址。如果找到輸入的地址但有一些錯誤,此服務可返回地址建議。這個建議被返回給用戶。檢查用戶是否更改了數據
用戶可以接受該建議並被信任。如果他改變了地址,他就不被信任。
有沒有一種很好的方法來檢查顯示給用戶的數據是否與他發佈的數據相同?我想我需要一個帶有地址數據散列的隱藏字段。但我不確定我應該採用哪種算法。如果可能,該算法應該不區分大小寫。
該算法應創建一個防篡改單向散列。
編輯:
到目前爲止這工作得很好。我仍然不得不用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
CRC32可能被篡改。我需要一個安全的單向散列。 – 2009-11-18 17:00:05
@Mathias Fritsch:考慮MD5。 – Dor 2009-11-18 17:03:38