1、代码 # -*- coding:utf-8 -*- import binascii original_text = input("请输入XOR加密前(字 符 串):") encrypted_text = input("请输入XOR加密后(十六进制):") # 先将original_text文本编码,然后再将字符串转换成十六进制 # 因为XOR异或运算是十六进制运算符 original_text = binascii.b2a_hex(original_text.encode("utf-8")) # 加密前后文本长度应该相同 if len(original_text) != len(encrypted_text): print("提示加密前后字符串长度不一致,请检查。") else: # int(encrypted_text, 16)指明encrypted_text是十六进制整数值 # hex()将括号里的十进制数值转化为十六进制(XOR运算之后的数值是十进制) hex_string = hex(int(encrypted_text, 16) ^ int(original_text, 16))[2:] print("密钥 Hex:\t" + hex_string) # 输出:343536 string = bytes.fromhex(hex_string).decode('utf-8') # Hex => String print("密钥 String:\t" + string) # 输出:456 2、使用 (base) ┌──(root㉿kali)-[~/soft/hack] └─# python xor.py 请输入XOR加密前:123 请输入XOR加密后:050705 密钥 Hex: 343536 密钥 String: 456