2016-03-04 80 views
0

我試圖創建一個方法,以生成從字符串[AZ] 具有10個字符最大長度 Intergers的NodeJS, 爲前:的NodeJS散列字符串到整數數組固定長度2

var arr=hashfn("subdomain"); 

的 「arr」 像[55,111],這是自動創建與兩個端口(HTTP,HTTPS)一個節點的服務器應用程序的想法,

我正在嘗試使用MD5哈希(32個字符),並將4個第一個字符串作爲arr [0]和4個字符作爲arr [1],但我不知道這種方法是否爲

回答

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

感謝。