BUUCTF的看我回旋踢

要解密这个凯撒密码,首先我们需要知道凯撒密码的偏移量。如果没有给出偏移量,我们通常会尝试所有可能的偏移量(0到25),然后选择一个有意义的结果。

我们已知:
1. 编码字符串为 `5pq1004q-86n5-46q8-o720-oro5on0417r1`
2. 解密后应该得到 `flag{5cd1004d-86a5-46b8-b720-beb5ba0417e1}`

由于 `flag{}` 的部分应该保持不变,我们可以先假设解密的过程是通过字符偏移来完成的。我们可以先尝试将每个字母部分进行凯撒密码解密。

我们先解密 "5pq1004q-86n5-46q8-o720-oro5on0417r1" 中的字母部分,并找到对应的明文。

让我们写一个简单的 Python 脚本来实现这个过程。

python
def decrypt_caesar_cipher(ciphertext, shift):
    decrypted = []
    for char in ciphertext:
        if char.isalpha():
            shifted = ord(char) - shift
            if char.islower():
                if shifted < ord('a'):
                    shifted += 26
            elif char.isupper():
                if shifted < ord('A'):
                    shifted += 26
            decrypted.append(chr(shifted))
        else:
            decrypted.append(char)
    return ''.join(decrypted)

# 尝试所有可能的偏移量
ciphertext = "5pq1004q-86n5-46q8-o720-oro5on0417r1"

for shift in range(26):
    decrypted_text = decrypt_caesar_cipher(ciphertext, shift)
    if "flag{" in decrypted_text:
        print(f"Shift: {shift}, Decrypted Text: {decrypted_text}")
        break
 

我们运行上述代码来找出正确的偏移量及解密后的结果。

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值