import struct import hashlib def md4(data): def f(x, y, z): return (x & y) | (~x & z) def g(x, y, z): return (x & y) | (x & z) | (y & z) def h(x, y, z): return x ^ y ^ z def rot(x, n): return ((x << n) | (x >> (32 - n))) & 0xffffffff msg = data + b'\x80' while len(msg) % 64 != 56: msg += b'\x00' msg += struct.pack('