nodejs:如何通过javascript将md5摘要切割成4个长数字

Posted

技术标签:

【中文标题】nodejs:如何通过javascript将md5摘要切割成4个长数字【英文标题】:nodejs: how to cut md5 digest into 4 long number by javascript 【发布时间】:2011-05-29 04:39:17 【问题描述】:

我的代码在下面,但有时它显示负数,我想我做错了。所以我添加最大数使其大于零,但二进制操作是最好的。

var buff2hash = function(buff, part) 
    var hash = buff[part * 4 + 3] << 24 |
            buff[part * 4 + 2] << 16 |
            buff[part * 4 + 1] << 8 |
            buff[part * 4];
    //return hash // this number will be negative sometimes
    return hash < 0 ? hash + 4294967296 : hash;
;

var md5hashcode = exports.md5hashcode = function(key) 
    return buff2hash(new Buffer(crypto.createHash('md5').update(key).digest()), 0);
;

【问题讨论】:

【参考方案1】:

哈希变量的最高位是符号。要将哈希“破解”转换为无符号 32 位整数,请执行以下操作:

return hash>>>0;

(忘记“返回”行中的所有喧嚣,只需执行上述操作即可。)

【讨论】:

以上是关于nodejs:如何通过javascript将md5摘要切割成4个长数字的主要内容,如果未能解决你的问题,请参考以下文章

使用 Crypto 将 PHP openssl_encrypt 与 md5 转换为 NodeJS

nodeJS之crypto模块md5和Hmac加密

如何在 url 中传递参数,在 NodeJS 后端的 javascript 服务器端使用冒号?

如何将两个参数传递给 Javascript/NodeJS 中的 API“获取”请求

nodejs怎样获取一个上传文件的MD5码?

nodejs 有md5withrsa 的加密方法吗