五、python中MD5加密
import hashlib '''
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
'''
##############MD5#################
def func_MD5(string):
hash=hashlib.md5()
hash.update(string)
m=hash.hexdigest()
print (m)
func_MD5("123") ######## sha1 #####################
def func_sha1(string):
hash = hashlib.sha1()
hash.update(bytes(string))
print(hash.hexdigest())
func_sha1("123")
# ######## sha256 ########
def func_sha256(string):
hash = hashlib.sha256()
hash.update(bytes(string))
print(hash.hexdigest())
func_sha256("123")
# ######## sha384 ########
def func_sha384(string):
hash = hashlib.sha384()
hash.update(bytes(string))
print(hash.hexdigest())
func_sha384("123")
# ######## sha512 ########
def func_sha512(string):
hash = hashlib.sha512()
hash.update(bytes(string))
print(hash.hexdigest()) func_sha512("123")
'''
以上加密算法虽然厉害,但存在缺陷,可通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
''' def func_MD5_deep(string):
hash=hashlib.md5(bytes("sdfgdfsgsdf")) #key加密
hash.update(string)
m=hash.hexdigest()
print(m) func_MD5_deep("123")
-----------------------------------------------------------------
202cb962ac59075b964b07152d234b70
40bd001563085fc35165329ea1ff5c5ecbdbbeef
a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
9a0a82f0c0cf31470d7affede3406cc9aa8410671520b727044eda15b4c25532a9b5cd8aaf9cec4919d76255b6bfb00f
3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2
066290ee749d0cc66116a3f55ecc241c
-----------------------------------------------------------------
'''
练习题:注册登录加密函数
'''
def fun_md5(arg):
hash=hashlib.md5(bytes("1232..gg"))
hash.update(arg)
m=hash.hexdigest()
return m def register(user2,pwd2):
with open("denglu.db","wb") as f:
temp=user2+"|"+fun_md5(pwd2)
f.write(temp)
def login(user1,pwd1):
with open("denglu.db","r") as f:
for line in f:
a,b=line.strip().split("|")
if user1==a and fun_md5(pwd1)==b:
print("登录成功!")
else:
print("用户名和密码不匹配!")
def func():
temp=input("1:登录,2注册")
if temp==1:
user = raw_input("请输入用户名:")
pwd = raw_input("请输入密码:")
login(user,pwd)
else:
user = raw_input("请输入用户名:")
pwd = raw_input("请输入密码:")
register(user,pwd) func()
五、python中MD5加密的更多相关文章
- Python 获取MD5加密值
Python 获取MD5加密值方法封装 import hashlib def get_md5(s): """获取MD5加密值 :param s: 需要加密的字符串 :re ...
- python 中md5 和 sha1 加密, md5 + os.urandom 生成全局唯一ID
首先先来介绍一下md5 和 sha1 的概念 MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法).128位长度.目前MD5是一种不可逆算法. 具有很高的安全性 ...
- 关于CryptoJS中md5加密以及aes加密的随笔
最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...
- iOS中MD5加密字符串实现
1.MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321 ...
- Python中hash加密
目录 简介 概念 特点 hash有哪些 算法碰撞 加盐防碰撞 加密 hashlib 主要方法 特有方法 使用方法 加盐 crypt 主要方法 使用说明 应用 密码加密 应用一致性校验 简介 概念 散列 ...
- java中MD5加密的小使用
最近项目中需要用到md5加密,就自己在网上看了看. package com.wxgs.ch01; import java.security.MessageDigest; import java.sec ...
- C#中MD5加密
C#中进行MD5加密需要使用MD5这个类,这个类位于System.Security.Cryptography命名空间. 转到元数据得知MD5是抽象类和两个静态方法 上代码详解: //得到其静态方法创建 ...
- Android中MD5加密
最近项目中遇到MD5加密,代码很简单,又是死代码,不过要注意当长度不足32的时候要补个0.下面是具体代码,直接拷贝就能用. public static String getMD5(String str ...
- 一小部分用python进行MD5加密的小技巧
上个图 要求计算出开头为ae3da且盐值为3c6e的字符串 简单的思路就是直接进行枚举,然后筛选符合条件的MD5加密字符,代码如下 #-*- coding:utf- -*- import hashli ...
随机推荐
- TS学习
随着vue3.0的即将到来,是时候学习一下TS了 简介:TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类 ...
- 软件开发中oracle查询常用方法总结
上次新霸哥和大家讲解了一些关于oracle的知识发现大家对oracle还是比较感兴趣的,下面新霸哥就大家比较关系的oracle中常用的查询有哪几种?做个和oracle相关的开发的朋友可能会知道答案,但 ...
- YUV格式详解【转】
转自:http://blog.csdn.net/searchsun/article/details/2443867 [-] YUV格式解析1播放器project2 YUV 采样 表面定义 YUV格式解 ...
- SQL的基本操作(三)
Hive基本SQL操作 Hive DDL(数据库定义语言) 1.数据库的基本操作 --展示所有数据库 show databases; --切换数据库 use database_name; /*创建数据 ...
- CenterNet
Objects as Points anchor-free系列的目标检测算法,只检测目标中心位置,无需采用NMS 1.主干网络 采用Hourglass Networks [1](还有resnet18 ...
- map1
map2.insert(make_pair("sale", 1)); map2.count("development");//key为development的数 ...
- P1058 立体图题解
小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备给小朋友们讲解立体图,请你帮他画出立体图. 小渊有一块面积为m \times nm×n的矩形区域,上面有m \times ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(11)|Structs结构体]
[易学易懂系列|rustlang语言|零基础|快速入门|(11)] 有意思的基础知识 Structs 我们今天来看看数据结构:structs. 简单来说,structs,就是用来封装相关数据的一种数据 ...
- share point 字段类型
Type (as shown on the Create Column page) Field Type Notes MSDN Links Single line of text Type=”Text ...
- jQuery、JS读取xml文件里的内容(JS先通过document.implementation.createDocument方法将xml转换成document对象,jQuery将读取到的xml转成table)
xml文件:test.xml <?xml version="1.0"?> <note> <to>George</to> <fr ...