nodejs哈希字符串到整数数组固定长度2

时间:2016-03-04 18:29:27

标签: node.js hash

我正在尝试创建一种从字符串[a-z]生成两个 Intergers 的方法 Nodejs 中最大长度为10个字符, 例如:

var arr=hashfn("subdomain");

" arr"与[55,111]类似,这是一个自动创建具有两个端口(http,https)的节点服务器应用程序的想法,

我正在尝试使用MD5哈希(32个字符),并将4个第一个字符串子化为arr [0],将4个字符串子化为arr [1],但我不知道这个方法是否

1 个答案:

答案 0 :(得分:0)

我想我找到了解决方案,使用djb2哈希算法,

  • 使用SHA1代替MD5
  • 取前3个字符和3个下一个字符

来源:http://www.cse.yorku.ca/~oz/hash.html

function hashfn(s) {
            var xhash = 0,c=0,i=0;
             while (c = s[i++])
                xhash = ((xhash << 5) + xhash) + c.charCodeAt(0) -48; // 48 is the 0 (ascii)
            return xhash;
}

var subdomain="www";
var arr={};

shasum.update(subdomain);
var hash=shasum.digest('hex');

arr.httpchars=hash.substr(0,3);
arr.httpschars=hash.substr(3,3);


arr.httpport=hashfn(arr.httpchars);
arr.httpsport=hashfn(arr.httpschars);


console.log(hash,arr);

<强>控制台:

enter image description here

感谢。

相关问题