在Javascript中是否可以将像这样的内容转换为整数:d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89
,这是MD5哈希函数的结果?
在Javascript中是否可以将像这样的内容转换为整数:d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89
,这是MD5哈希函数的结果?
可能不是完美的,但这符合我的需求。
export function stringToIntHash(str, upperbound, lowerbound) {
let result = 0;
for (let i = 0; i < str.length; i++) {
result = result + str.charCodeAt(i);
}
if (!lowerbound) lowerbound = 0;
if (!upperbound) upperbound = 500;
return (result % (upperbound - lowerbound)) + lowerbound;
}
ES6 版本,将字符串转换为介于 0-9 之间的整数:
string.split('').map(i => i.charCodeAt(0)).reduce((a, b) => a + b, 0) % 10
const farmhash = require('farmhash');
const hexDigest = crypto.createHash('md5').update().digest('hex');
farmhash.fingerprint64(hexDigest);
看起来像是一个十六进制数字,你可以尝试使用parseInt
函数并传入基数为十六:
var num = parseInt(string, 16);
编辑:这种方法实际上并不起作用。有关详细信息,请参见评论。
parseInt
:~9.462148622078087e+76。实际值为94621486220780871705971335405839374945966571586290374999485260302979719462793,可被3整除但不能被2整除。 - Ry-