以下的代码是c#,现在我的开发环境又是nodejs的,我用的typescript语言,就想如何把它转成nodejs环境下可以用的
public static string Md5Sign(string prestr, string key)
{
StringBuilder sb = new StringBuilder(32);
prestr = prestr + key;
MD5 md5 = new MD5CryptoServiceProvider();
byte[] t =
md5.ComputeHash(Encoding.UTF8.GetBytes(prestr));
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));//t[i].ToString("x").PadLeft(2, '0')//x代表十六进制,固定长度为2,左边不足,补0
}
return sb.ToString();
}
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
以下是我自己写的,本人能力有限,改起来有些困难,还怕自己改错了,特地上来求助一下,谢谢!
Md5Sign(sortedUrl: string, appKey: string) {
//appKey=yingsheng@oa
sortedUrl = sortedUrl + appKey;
let bytes = this.getBytes(sortedUrl)
console.log("bytes:", bytes)
console.log("cryptoUtil.md5(sortedUrl):", cryptoUtil.md5(sortedUrl))
let md5 = crypto.createHash('md5')
let sb: any = []
let str = md5.update(sortedUrl).digest('hex');
return str;
// console.log("getHashResult:", this.getHashResult(sortedUrl))
// let hashResult = this.getHashResult(sortedUrl)
// return hashResult;
}
对于我来说,难点就是byte[] t =md5.ComputeHash(Encoding.UTF8.GetBytes(prestr));因为nodejs的库md5没有将字节数组转为哈希值的方法,然后用了md5的库也不知道对不对...
node
有npm
包鸭。blueimp-md5传送门