TLIYHash

by thelifeisyours

JavaScript

var pass = "a";
console.log(hashString(pass));

function hashString(stringIn) {
  let stringOut = "";

  let seed = genSeed(stringIn);
  console.log("seed:", seed);

  for (let length = 0; length < 127; length++) {
    let char = rngChar(33, 126, rng(genSeed(stringIn) * length));
    stringOut += String.fromCharCode(char);
  }

  return stringOut;
}

function rngChar(min, max, salt) {
  let char = rng(salt);

  while (!(char >= min && char <= max)) {
    char = (char % max) + min;
  }

  return char;
}

function toCharArray(string) {
  return string.split('').map(char => {
    return char.charCodeAt()
  });
}


function rng(n) {
  let seed = n * 48271;
  let tmp = (seed & 0x7fffffff) + (seed >> 31);
  tmp = (tmp & 0x7fffffff) + (tmp >> 31);

  return tmp;
}

function genSeed(string) {
  return (toCharArray(string).reduce((n, a) => {
    return n + a;
  }) & 0xFFF) << 16;
}