MicroCorruption/17-Chernobyl/Code/hashbrek.py

25 lines
527 B
Python
Raw Normal View History

2022-08-08 00:58:46 +00:00
#!/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] == '~'):
2022-08-08 00:58:46 +00:00
h = hash(bytes.fromhex(line[1:]));
else:
h = hash(line.encode())
2022-08-15 08:57:45 +00:00
print(f"hash: {h:x}, box[3]: {h&7:x}, box[4]: {h&0xf:x}");
2022-08-08 00:58:46 +00:00
except EOFError:
break
print("")