MicroCorruption/18-Chernobyl/Code/crappy_python/hashfunc.py

25 lines
488 B
Python

#!/usr/bin/env python3
# TODO: Actually break the hashes?
# TODONE in chernobreak.py
def hash(chars):
ret = 0;
for c in chars:
ret += c
ret = ((ret << 5) - ret) & 0xffff
return ret
while True:
try:
line = input("> ")
if (len(line) and line[0] == '~'):
h = hash(bytes.fromhex(line[1:]));
else:
h = hash(line.encode())
print(f"hash: {h:x}, box[3]: {h&7:x}, box[4]: {h&0xf:x}");
except EOFError:
break
print("")