Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @param {string} str
- * @returns {number[]}
- */
- function toCharCodeArray(str) {
- var result = [];
- for(var i = 0, length = str.length; i < length; i++) {
- var code = str.charCodeAt(i);
- result.push(code);
- }
- return result;
- }
- /**
- * @param {string} str
- */
- function rockyHashStep(str) {
- let chars = toCharCodeArray(str);
- let total = 0;
- let evenOdd = 0;
- chars.forEach(code => {
- evenOdd = !evenOdd;
- total += code;
- if(evenOdd)
- total *= code;
- else
- total /= code;
- });
- return {next: total.toString(), cur:['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'][total & 0xF]};
- }
- /**
- * @param {string} str
- */
- function rockyHash(str) {
- let total = "";
- let next = str + str;
- for(let i = 0; i < 64; i++) {
- let result = rockyHashStep(next);
- next = result.next;
- total += result.cur;
- }
- return total;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement