仿射密码
首先题目描述使用仿射函数y=3x+9加密得到的密文为JYYHWVPIDCOZ,请尝试对其解密。flag为flag{大写明文}。
1、使用在线网站直接破解或手工计算破解,获得flag。(参数a=3,b=9,对应仿射函数y=3x+9)
仿射密码加密_仿射密码解密
手工计算使用解密函数为D(x) = a^-1(x - b) (mod m),也可以获得flag。
flag:
flag{AFFINECRYPTO}
RC4
首先给了一个python脚本密钥和密文分别被保存在文件 key
和 ciphertext
中。
首先从文件 key 中读取密钥。
从文件 ciphertext 中读取加密的消息。
使用相同的** RC4 ****算法和密钥进行解密**。
脚本
from Crypto.Cipher import ARC4# 读取密钥和密文
with open("key", "rb") as f:
key = f.read()with open("ciphertext", "rb") as f:
cipher = f.read()# 使用 RC4 解密
rc4 = ARC4.new(key)
decrypted_message = rc4.decrypt(cipher)# 输出解密后的消息
print("Decrypted message:", decrypted_message.decode())
flag{0d7bab34-b3a8-c688-517e-9a7c21d52176}
py交易
首先我们反编译运行一下
需要提交正确的flag,来分析一下
要找到正确的 flag,需要逆向分析加密过程,逐步恢复原始的 flag。
- 步骤****1:Base64 解码 correct,得到经过 XOR 和加法处理的字符串。
- 步骤****2:对于每个字符,反向操作,先减去 16,再对字符进行 XOR 操作,恢复原始字符。
import base64def decode(encoded_message):
decoded_message = base64.b64decode(encoded_message).decode('utf-8')
original_message = ''for char in decoded_message:
x = ord(char) - 16 # 先减去 16
x = x ^ 32 # 然后做 XOR 操作
original_message += chr(x)return original_message# 给定的 correct 字符串
correct = 'VlxRV2tWIyNTKShTJSUkVSIjKVIoVSRSIlUnUVMgJ1EkUVQhIW0='# 解密
flag = decode(correct)
print(f'The correct flag is: {flag}')
flag{f33c98c554e239b8e4b2e7ac07a4ad11}