bcrypt.ctf/bcrypt/working/shifts.py
2025-06-21 17:42:00 +10:00

23 lines
497 B
Python

from typing import Any
def clamp_pos(x: int):
return x if x > 0 else 0
def lpad(x: Any, n: int, pad: chr = ' '):
x = str(x)
return clamp_pos(n - len(x))*pad + x
def debug_R(B: int):
# B = int('1'*7, 2)
for j in range(8):
j_sq = j**2
R_j = B << j_sq
lpadbin_R_j = lpad(bin(R_j)[2:], 64, pad='0')
print(f'{lpad(j_sq, 2)}: {lpadbin_R_j} {R_j}')
def main():
B = int(input('B: '), 2)
debug_R(B)
if __name__ == '__main__':
main()