2014-02-06 19 views
0

我坐在幾天的以下問題:我需要在JavaScript中獲得一個UTF16-LE編碼字符串的MD5哈希值。我有一個例子如何在C#中做到這一點,但不知道如何在JavaScript中做到這一點。Javascript中的UTF16LE(沒有BOM和0字節結束)的MD5

例子:

public string GetMD5Hash (string input) { 
MD5 md5Hasher = MD5.Create(); 
byte[] data = md5Hasher.ComputeHash(Encoding.Unicode.GetBytes(input)); 
StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < data.Length; i++) { 
    sb.Append(data[i].ToString("x2")); 
} 
return sb.ToString(); 
} 

通緝:

var getMD5Hash(input){ 
    .... 
} 

var t = getMD5Hash("1234567z-äbc"); 
console.log(t) // --> 9e224a41eeefa284df7bb0f26c2913e2 

我希望有人能幫助我: -/

+1

JavaScript使用UTF-16。如果你使用'charCodeAt',你會得到你的字節。在JS中有很多MD5實現(請參閱[相關問題])(http://stackoverflow.com/questions/1655769/fastest-md5-implementation-in-javascript)) –

+0

感謝您的答案。我測試了所有的庫,但沒有一個提供了正確的字符串... – user3279386

回答

0

在這裏你去

return challenge + "-" + require('crypto').createHash('md5').update(Buffer(challenge+'-'+password, 'UTF-16LE')).digest('hex')