CTF-Crypto加密题目内容
下面是一个Base64加密的密文
bXNobnszODdoajM3MzM1NzExMzQxMmo4MGg0bDVoMDYzNDQzNH0=
原文链接: 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术
我们用Python写一个解密脚本:
import base64
import time
#base64加密破解encoded_str = input("请输入Bese64加密后的密文:")
print("---正在执行密文破解---")
time.sleep(1)
print("*"*1)
time.sleep(1)
print("*"*2)
time.sleep(1)
print("*"*3)
time.sleep(1)
print("*"*4)
time.sleep(1)
print("*"*5)
decoded_bytes = base64.b64decode(encoded_str).decode('utf-8')
#decode_str = decoded_bytes.decode('utf-8')
time.sleep(1)
print("---密文破解完毕---")
time.sleep(2)
print(decoded_bytes)
原文链接: 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术
然后我们运行脚本,执行Base64解密
原文链接: 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术
然后成功获取解密后的原文
提交答案,发现答案错误。
那就是不只有Base64加密,还有另外一种加密。
思想片刻,终于找到是凯撒加密方式了
下面我们用Python编写一个凯撒解密脚本:
def caesar_decrypt(ciphertext, shift):"""解密凯撒密码:param ciphertext: 加密后的文本:param shift: 偏移量(解密时应该为负数):return: 解密后的文本"""result = ""# 遍历加密文本中的每个字符for char in ciphertext:# 如果字符是字母,则进行解密if char.isalpha():# 区分大小写if char.isupper():# 将大写字母转换为ASCII码进行计算unciphered_char = chr((ord(char) - ord('A') - shift) % 26 + ord('A'))else:# 将小写字母转换为ASCII码进行计算unciphered_char = chr((ord(char) - ord('a') - shift) % 26 + ord('a'))result += unciphered_charelse:# 如果字符不是字母,则直接添加到结果中result += charreturn result# 示例用法
ciphertext = input("请输入凯撒密文:") # 假设这是通过凯撒密码加密后的"HELLO"
shift = int(input("请输入偏移量:")) # 假设偏移量是-3(即向左移动3位)
plaintext = caesar_decrypt(ciphertext, shift)
print(plaintext)
接着我们运行脚本,试着把凯撒密文解密
原文链接: 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术
也是成功解密,提交答案成功!
原文链接: 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术