2016-03-04 3 views
0

я пытаюсь создать метод для генерации дваIntergers из строки [аз] с максимальной длиной 10 символов в 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

спасибо.

Смежные вопросы