BUUCTF-Crypto-变异凯撒解题思路

BUUCTF-Crypto-变异凯撒解题思路

题目

加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag{}

解答思路

由密文可以看出,有大小写字母,并且还有下划线和阿拉伯数字,所以我们基本可以看出需要使用ASCII码表。
在这里插入图片描述
又因为明文flag对应afZ_,所以寻找明文和密文的规律
f-102 a-97 相差5
l-108 f-102 相差6
a-97 Z-90 相差7
g-103 _-95 相差8
可以看出每个字符的偏移量为n+4
所以依次算出各密文字符对应的明文字符求得明文为
flag{Caesar_variation}

"buuctf Crypto 变异凯撒"似乎是一个特定的网络安全挑战题目,其中提到的“Crypto”通常指加密,而“变异凯撒”是一种简单的密码学技术,源自古罗马时代的一种字母替换加密法。在这个变种中,原始字母表中的每个字符按照固定的偏移量(比如3位)向后移动来形成密文。 Python中实现这种变异凯撒加密的步骤一般包括以下几个部分: 1. 定义偏移量:例如你可以让用户输入一个数字作为偏移值。 2. 创建字母映射:将字母表分为大写和小写字母两部分,分别做偏移处理。 3. 加密函数:接收明文字符串和偏移量,然后逐个字符进行加密并返回加密后的密文。 4. 解密同样原理,只是反向操作偏移。 下面是一个简单的Python示例,演示如何实现这个加密过程: ```python def caesar_cipher_encrypt(text, shift): encrypted_text = "" for char in text: if char.isalpha(): shifted = ord(char) + shift if char.islower(): encrypted_text += chr((shifted - ord('a')) % 26 + ord('a')) else: encrypted_text += chr((shifted - ord('A')) % 26 + ord('A')) else: encrypted_text += char return encrypted_text def caesar_cipher_decrypt(encrypted_text, shift): return caesar_cipher_encrypt(encrypted_text, -shift) # 示例用法 plaintext = "Hello, World!" shift = 3 encrypted = caesar_cipher_encrypt(plaintext, shift) decrypted = caesar_cipher_decrypt(encrypted, shift) print("原文:", plaintext) print("加密:", encrypted) print("解密:", decrypted) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值