本帖最后由 yur0 于 2025-9-27 20:58 编辑
🚀 启动实例 A
🔐 请输入密码:ow\& 4
✅ 验证成功!
📅 当前时间: 2025-09-27 20:52:50
import time
printable = [i for i in range(32, 127)]
MOD = 2**32
target = 1717711059
inv33 = pow(33, -1, MOD)
start = time.time()
pref_map = {}
count = 0
def djb2_from_bytes(bs):
h = 5381
for c in bs:
h = ((h << 5) + h) ^ c
h &= 0xFFFFFFFF
return h
for a in printable:
for b in printable:
for c in printable:
h = djb2_from_bytes(bytes([a, b, c]))
pref_map[h] = bytes([a, b, c])
count += 1
found = None
start2 = time.time()
iter_count = 0
for x in printable:
for y in printable:
for z in printable:
prev1 = (inv33 * (target ^ z)) % MOD
prev2 = (inv33 * (prev1 ^ y)) % MOD
prev3 = (inv33 * (prev2 ^ x)) % MOD
if prev3 in pref_map:
found = pref_map[prev3] + bytes([x, y, z])
print("Found:", found.decode())
raise SystemExit
iter_count += 1
if iter_count % 2000000 == 0:
print("iter", iter_count, "time", time.time() - start2)
|