Advertisement
Guest User

kill me

a guest
Jan 17th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * @param {string} str
  3.  * @returns {number[]}
  4.  */
  5. function toCharCodeArray(str) {
  6.     var result = [];
  7.     for(var i = 0, length = str.length; i < length; i++) {
  8.         var code = str.charCodeAt(i);
  9.         result.push(code);
  10.     }
  11.     return result;
  12. }
  13.  
  14. /**
  15.  * @param {string} str
  16.  */
  17. function rockyHashStep(str) {
  18.     let chars = toCharCodeArray(str);
  19.    
  20.     let total = 0;
  21.     let evenOdd = 0;
  22.  
  23.     chars.forEach(code => {
  24.         evenOdd = !evenOdd;
  25.         total += code;
  26.         if(evenOdd)
  27.             total *= code;
  28.         else
  29.             total /= code;
  30.     });
  31.     return {next: total.toString(), cur:['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'][total & 0xF]};
  32. }
  33.    
  34.  
  35. /**
  36.  * @param {string} str
  37.  */
  38. function rockyHash(str) {
  39.     let total = "";
  40.     let next = str + str;
  41.     for(let i = 0; i < 64; i++) {
  42.         let result = rockyHashStep(next);
  43.         next = result.next;
  44.         total += result.cur;
  45.     }
  46.     return total;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement