ydwb 发表于 2025-7-17 18:12:13

夏天密码

import base64
a = "tdX9tszYt9LetfT5t9P9v+zcttnXtf3AtdDPtOjdte7H\
    v+zcuMntuP/ktsj/tszbtd/bv+zctO3wt9P9ttjBtOnPt9P9v+z\
    cttnXtf3AttnXtdfZufPev+zctsfmtsfmtcz4ttnbtOj9v+zctsz\
    ZtOrqts31tdDPttnXv+zctd/dttnbtOjZtOjRtdX8s9DS"

def encrypt_text(text, key=0x50):
    """加密文本,返回Base64编码的字符串"""
    original_bytes = text.encode('utf-8')
    encrypted_bytes = bytes()
    return base64.b64encode(encrypted_bytes).decode('utf-8')

def decrypt_text(encrypted_text, key=0x50):
    """解密Base64编码的字符串,返回原始文本"""
    encrypted_bytes = base64.b64decode(encrypted_text.encode('utf-8'))
    decrypted_bytes = bytes()
    return decrypted_bytes.decode('utf-8')

decrypted = decrypt_text(a)
print("解密结果:", decrypted)

FishC 发表于 2025-7-17 18:13:42

根据代码分析,`decrypt_text` 函数缺少核心解密逻辑,而加密/解密原理应为 **逐字节异或(XOR)操作**。密钥默认是 `0x50`(十进制 80)。以下是修正后的完整代码和解释:


import base64

a = "tdX9tszYt9LetfT5t9P9v+zcttnXtf3AtdDPtOjdte7Hv+zcuMntuP/ktsj/tszbtd/bv+zctO3wt9P9ttjBtOnPt9P9v+zcttnXtf3AttnXtdfZufPev+zctsfmtsfmtcz4ttnbtOj9v+zctszZtOrqts31tdDPttnXv+zctd/dttnbtOjZtOjRtdX8s9DS"

def encrypt_text(text, key=0x50):
    """加密文本:异或 + Base64编码"""
    original_bytes = text.encode('utf-8')
    encrypted_bytes = bytes(b ^ key for b in original_bytes)# 核心:逐字节异或
    return base64.b64encode(encrypted_bytes).decode('utf-8')

def decrypt_text(encrypted_text, key=0x50):
    """解密文本:Base64解码 + 异或"""
    encrypted_bytes = base64.b64decode(encrypted_text)
    decrypted_bytes = bytes(b ^ key for b in encrypted_bytes)# 核心:逐字节异或
    return decrypted_bytes.decode('utf-8')

# 清理字符串中的空格(因续行符产生的缩进)
cleaned_a = a.replace(" ", "").replace("\\", "")# 移除空格和续行符
decrypted = decrypt_text(cleaned_a)
print("解密结果:", decrypted)


**关键点说明:**
1. **异或解密原理**:对每个字节执行 `b XOR key`,两次异或可还原数据(加密/解密使用相同密钥)。
2. **字符串清理**:变量 `a` 中的空格和续行符 `\` 需提前移除,否则 Base64 解码会失败。
3. **输出结果**:运行后将打印解密后的明文。

**执行效果:**
解密结果会显示一段有意义的中文字符串(具体内容取决于原始加密数据)。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

王昊扬 发表于 2025-7-17 18:40:53

{:10_257:}

尉尉的可乐 发表于 2025-7-17 18:48:59

解密结果: 六月炎天热,扇子借不得,虽说是朋友,你热我也热,扇子扇凉风,时时在手中,有人来借扇,反手三丁公。

sfqxx 发表于 2025-7-18 23:19:49

支持

尉尉的可乐 发表于 7 天前

这段密码用了两层加密:
        1.        先用 XOR(异或)加密,密钥是 0x50(也就是十进制 80);
        2.        再进行 Base64 编码,让它看起来像乱码

921139987 发表于 7 天前

{:10_297:}

王昊扬 发表于 6 天前

1

简笔画火炬V环 发表于 6 天前

支持

kebi 发表于 5 天前

{:10_254:}

学数学的混子 发表于 4 天前

看看{:10_256:}

yueyueyue1023W 发表于 4 天前

{:5_108:}

G先行 发表于 4 天前

王昊扬 发表于 2025-7-17 18:40


!!!

d11111 发表于 4 天前

{:5_101:}
页: [1]
查看完整版本: 夏天密码