MicroCorruption/17-Chernobyl/Code/hashbrek.py

25 lines
505 B
Python

#!/usr/bin/env python3
# TODO: Actually break the hashes?
# May not be necessary, just gotta find a way to crash it. Harumph.
def hash(byts):
ret = 0;
for c in byts:
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: {h&7:x}");
except EOFError:
break
print("")