1 Star 0 Fork 0

杨谨徽/代码托管

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
MD5加密 2.18 KB
一键复制 编辑 原始数据 按行查看 历史
杨谨徽 提交于 2021-12-20 09:42 +08:00 . add MD5加密.
#md5加密
import hashlib
hash_md5 = hashlib.md5()
x = input("Please input your text:")
print("Text:", x)
data = x.encode('utf-8', errors='ignore') # 对x编码,忽略潜在错误
hash_md5.update(data) # 更新数据,保证数据被成功编码
md5_str = hash_md5.hexdigest() # hash.hexdigest()返回摘要,作为十六进制数据字符串值
print("MD5:", md5_str) # 打印十六进制字符串值
#形成key
from random import *
rad = "".join([choice("0123456789ABCDEF") for i in range(32)]) # 从0到F中随机选取一个数,并形成一个32位的密钥
print("key:", rad) # 打印密钥
#xor加密
txt1 = []
t = ''
u = ''
for a in range(32):
i = '0x'+md5_str[a] # 添加16进制的前缀0x,形成标准十六进制数
j = '0x'+rad[a] # 添加16进制的前缀0x,形成标准十六进制数
p = bin(eval(i)).replace('0b', '') # 将十六进制数转换成二进制数,并去掉二进制数前缀0b
q = bin(eval(j)).replace('0b', '') # 将十六进制数转换成二进制数,并去掉二进制数前缀0b
for c in range(min(len(p), len(q))): # 对p和q按位异或运算
if (p[-c] == q[-c]):
e ='0'
elif(p[-c] !=q [-c]):
e ='1'
t = e + t
t ='0b'+t # 得到按位异或运算结果
d = t # 把按位异或运算结果赋值给d
t = '' # 重新给t赋值为空字符串
s = hex(eval(d)).replace('0x', '') # eval()函数用于返回表达式计算结果,同时转换为十六进制数,去掉前缀0x
u = u+s # 得到CipherText
print("CipherText:", u) # 打印CipherText
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/SHIBATORI/code-hosting.git
git@gitee.com:SHIBATORI/code-hosting.git
SHIBATORI
code-hosting
代码托管
master

搜索帮助