【发布时间】:2009-11-18 16:52:00
【问题描述】:
当用户在我们的网站上注册时,我们会使用地址验证服务检查地址。如果找到输入的地址但有一些错误,此服务可以返回地址建议。该建议返回给用户。
用户可以接受建议并受到信任。如果他更改了地址,他就不受信任。
有没有什么好方法可以检查显示给用户的数据是否与他发布的数据相同?我想我需要一个带有地址数据哈希的隐藏字段。但我不确定我应该采用哪种算法。如果可能,算法应该不区分大小写。
算法应该创建一个防篡改的单向哈希。
编辑:
到目前为止,这工作得很好。我仍然需要使用变音符号 (ä,ü ) 进行测试。
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
【问题讨论】:
标签: asp.net-mvc hash