【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

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值