【XOR秘钥破解】异或加密秘钥破解

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

【XOR秘钥破解】异或加密秘钥破解_第1张图片

你可能感兴趣的:(服务器,linux,数据库,XOR,python)