made my own pseudo random generator in 10 minutes to learn how they work.
with quick glance it looks pretty random.
//
Hello
053d13fd06202f1108129b8b0d893c880a30b80e14c4da58146db3d313cd9d46
Hella
0e34dd5b002a16c905178f670c0bb67613e3f1fc0f2c7a5811a183d312678546
Tella
122932eb097f2bba056ee2af00150e9714ad1f8a0972e80302cba9b709a0d129
Tella Mella Hella Lella
029987e4037983a702fe4b6e09fc3d250d2bd0fc0915dc62125d2df012ab8330
//
import sys
def _rotate_right(num: int, shift: int, size: int = 32):
return (num >> shift) | (num << size - shift)
def generate_hash(message: bytearray) -> bytearray:
vals = [0x1] * 8
for m in bytearray(message, 'ascii'):
for i in range(0, len(vals)):
vals[i] = _rotate_right(vals[i] + m * 2**18, 1+i) % 2**32
vals[i] = vals[i] % 0x34456 * 0x665
result = ""
for v in vals:
result += v.to_bytes(4, 'big').hex()
return result
if __name__ == "__main__":
print(generate_hash(sys.argv[1]))