转轮机加密
根据题目提示转轮机加密
轮转加密的原理:

比如第一个秘钥为2代表第二行,第一个密文为N,代表这从N开始往后排
KPBELNACZDTRXMJQOYHGVSFUWI-->NACZDTRXMJQOYHGVSFUWIKPBEL
写一个脚本,将所有的字母旋转回来
点击查看代码
wheels = [
"ZWAXJGDLUBVIQHKYPNTCRMOSFE",
"KPBELNACZDTRXMJQOYHGVSFUWI",
"BDMAIZVRNSJUWFHTEQGYXPLOCK",
"RPLNDVHGFCUKTEBSXQYIZMJWAO",
"IHFRLABEUOTSGJVDKCPMNZQWXY",
"AMKGHIWPNYCJBFZDRUSLOQXVET",
"GWTHSPYBXIZULVKMRAFDCEONJQ",
"NOZUTWDCVRJLXKISEFAPMYGHBQ",
"XPLTDSRFHENYVUBMCQWAOIKZGJ",
"UDNAJFBOWTGVRSCZQKELMXYIHP",
"MNBVCXZQWERTPOIUYALSKDJFHG",
"LVNCMXZPQOWEIURYTASBKJDFHG",
"JZQAWSXCDERFVBGTYHNUMKILOP"
]
key_order = [2, 3, 7, 5, 13, 12, 9, 1, 8, 10, 4, 11, 6]
cipher = "NFQKSEVOQOFNP"
print("旋转后的转轮:")
print("-" * 40)
for idx, wheel_num in enumerate(key_order):
wheel_index = wheel_num - 1
cipher_char = cipher[idx]
pos = wheels[wheel_index].index(cipher_char)
rotated = wheels[wheel_index][pos:] + wheels[wheel_index][:pos]
print(f"密钥{wheel_num:2d}: {rotated}")

在将每行第一个字母连起来,寻找有意义的那一列

flag要小写

浙公网安备 33010602011771号