Javascript中的UTF16LE(无BOM和0字节结束)的MD5(提供C#示例)

时间:2014-02-06 11:50:56

标签: c# javascript md5

我几天就遇到了以下问题:我需要在JavaScript中获取一个UTF16-LE编码字符串的MD5哈希值。我有一个示例如何在C#中执行此操作但不知道如何在JavaScript中执行此操作。

示例:

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 

我希望有人可以帮助我: - /

2 个答案:

答案 0 :(得分:0)

你去吧

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

答案 1 :(得分:0)

let md5 = require('md5');

function getMD5_UTF16LE(str){
    let bytes = [];
    for (let i = 0; i < str.length; ++i) {
      let code = str.charCodeAt(i);
      bytes = bytes.concat([code & 0xff, code / 256 >>> 0]);
    }
    return md5(bytes);
}

需要图书馆https://www.npmjs.com/package/md5