ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XOR加密

2021-10-27 21:04:06  阅读:216  来源: 互联网

标签:加密 0x replace 0b eval print XOR md5


coding=utf-8

md5算法

import hashlib
h_md5 = hashlib.md5()
x = input("输入需要加密的数据:")
print( "Text:",x)
data = x.encode('utf-8', errors='ignore')
h_md5.update(data)
md5_str = h_md5.hexdigest()
print("MD5:",md5_str)

形成key

随机生成十六进制0~F

from random import *
n = "".join([choice("0123456789ABCDEF") for i in range(32)])
print ( "key:", n)

xor运算

txt1 = []
k = ''
u = ''
for a in range(32):
i = '0x' + md5_str[a]
j = '0x' + n[a]
x=bin(eval(i)).replace('0b','')
y=bin(eval(j)).replace('0b','')
for c in range(min(len(x),len(y))):
if (x[-c] == y[-c]) :
e = '0'
elif(x[-c] != y[-c]):
e = '1'
k = e + k
k ='0b' + k
d = k
k = ''
s = hex(eval(d)).replace('0x','')
u = u + s
print("CipherText:",u)

编写过程中参考了同学的。md5算法和随机生成的Key都很好理解,但在最后xor运算上遇到了困难,需要加强学习。

标签:加密,0x,replace,0b,eval,print,XOR,md5
来源: https://www.cnblogs.com/ningxinyu1/p/15472877.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有