Bugku|散乱的密文

题目链接:https://ctf.bugku.com/challenges/detail/id/52.html?id=52

题目

If5{ag024c483549d7fd@@@1} 一张纸条上凌乱的写着 2 1 6 5 3 4

看到密文 If5{ag024c483549d7fd@@@1},顺序是乱的,纸条上的 2 1 6 5 3 4 猜测为加密算法的密钥。

尝试按照216534的顺序把前六个字符重新排序,得到flag{5,符合 flag 格式,判断为置换密码。

解题思路

将密文每6个字符分为一组,每组字符按照密钥216534的顺序重排,拼接所有分组结果;末尾的@为填充字符,无实际含义,最后删除填充字符即可得到 flag。

Python 解密脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def decrypt_group(cipher, key):
n = len(key)
result = ""
for i in range(0, len(cipher), n):
block = cipher[i:i+n]
temp = [''] * n
for j in range(len(block)):
temp[int(key[j]) - 1] = block[j]
result += "".join(temp)
return result

cipher = "If5{ag024c483549d7fd@@@1}"
key = "216534"

print(decrypt_group(cipher, key))

运行结果

1
flag{52048c453d794df1}@@

说明:密钥是6位数字,密文总长度不是6的倍数,加密时使用@填充空位,@没有实际意义,直接删除。

最终 Flag

1
flag{52048c453d794df1}

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2012-2026 高源

请我喝杯咖啡吧~

支付宝
微信