15 lines
334 B
Python
15 lines
334 B
Python
'''
|
|
The unchanged original "bcrypt" function for the CTF (by bpaul)
|
|
'''
|
|
def bcrypt(x: bytes) -> int:
|
|
h = 18446744073709551614
|
|
|
|
for (i, b) in enumerate(x):
|
|
h *= h * (b + 1)
|
|
k = 59275109328752 * (i + 1)
|
|
for j in range(8):
|
|
k ^= b << (j * j)
|
|
h += k
|
|
h %= (2 ** 64)
|
|
|
|
return h
|