I want to generate a hash code from a string, for example, "咖啡", but the hash code that I get from python and C # is different from what I want
WITH#
String str = "咖啡";
MD5 m = MD5.Create();
byte[] data = m.ComputeHash(Encoding.Default.GetBytes(str));
StringBuilder sbuilder = new StringBuilder();
for(int i=0;i<data.Length;i++){
sbuilder.Append(data[i].ToString("x2"));
}
byte[] hex = Encoding.Default.GetBytes(str);
StringBuilder hex_builder = new StringBuilder();
foreach(byte a in hex){
hex_builder.Append("{0:x2}",a);
}
Response.Write(sbuilder.ToString());
Response.Write(hex_builder.ToString());
Python
str = '咖啡'
m = hashlib.md5()
m.update(str)
print m.hexdigest()
print ' '.join(["%02x"%ord(x) for x in str])
binary string - e5 92 96 e5 95 a1 in both C # and python
hash code md5 :
(C #) a761914f9760af3c112e24f08dea1b16
(Python) 3b7daa58a1fecdf5ba4d94d539fbb4d5
source
share