#!/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[3]: {h&7:x}, box[4]: {h&0xf:x}"); except EOFError: break print("")