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

支持

尉尉的可乐 发表于 2025-7-19 07:12:07

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

921139987 发表于 2025-7-19 10:50:56

{:10_297:}

王昊扬 发表于 2025-7-20 20:33:30

1

简笔画火炬V环 发表于 2025-7-20 20:51:08

支持

kebi 发表于 2025-7-21 00:48:54

{:10_254:}

学数学的混子 发表于 2025-7-22 08:32:52

看看{:10_256:}

yueyueyue1023W 发表于 2025-7-22 08:34:49

{:5_108:}

G先行 发表于 2025-7-22 10:20:26

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


!!!

d11111 发表于 2025-7-22 13:46:25

{:5_101:}

某一个“天” 发表于 2025-7-29 00:28:19

{:10_256:}

叶kyrie 发表于 2025-8-4 15:18:55

支持{:10_249:}

jian-qi- 发表于 2025-8-4 15:27:30

XOR是一种对称加密算法,加密和解密使用相同的密钥,这里默认值为0x50(16进制表示,等于十进制的80)。{:9_237:}

xiangjianshinan 发表于 2025-8-4 16:08:55

谢谢!又学到了一些知识。

qzr25 发表于 2025-8-5 11:09:45

{:10_257:}

SiegfriedStyx 发表于 2025-8-6 09:37:51

解密出来的结果很有意思
页: [1] 2
查看完整版本: 夏天密码