the byte string is same in python and c#,but md5 hashcode is different

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sidooh
    New Member
    • Dec 2009
    • 9

    the byte string is same in python and c#,but md5 hashcode is different

    hi,everyone.

    I want to generate the hash code from a string,e.g."咖啡" ,but the hashcode I get from python and c# is different,the one from python is what I want

    c#
    Code:
    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);
    }
    //md5 hash code
    Response.Write(sbuilder.ToString());
    //binary string
    Response.Write(hex_builder.ToString());
    python
    Code:
    str = '咖啡'
    m = hashlib.md5()
    m.update(str)
    #md5 hashcode
    print m.hexdigest()
    #binary string
    print ' '.join(["%02x"%ord(x) for x in str])
    binary string is e5 92 96 e5 95 a1 both in c# and python

    md5 hash code:
    (c#)a761914f976 0af3c112e24f08d ea1b16
    (python)3b7daa5 8a1fecdf5ba4d94 d539fbb4d5
Working...