python-hashlib加密
用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA512,MD5算法。
以下是算法示例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import hashlib
#=================MD5()加密=====================
hhb = hashlib.md5(bytes("jahiuhfdakj", encoding='utf-8')) #加盐处理
ret = hhb.update(bytes("", encoding='utf-8')) #“123”是需要加密的字符串
print("MD5加密:", hhb.hexdigest()) #=================SHA1()加密=====================
hhb = hashlib.sha1()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA1加密:", hhb.hexdigest()) #=================SHA224()加密=====================
hhb = hashlib.sha224()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA224加密:", hhb.hexdigest()) #=================SHA256()加密=====================
hhb = hashlib.sha256()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA256加密:", hhb.hexdigest()) #=================SHA512()加密=====================
hhb = hashlib.sha512()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA512加密:", hhb.hexdigest()) #=================SHA3_256()加密=====================
hhb = hashlib.sha3_256()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA3_256加密:", hhb.hexdigest()) #=================SHA3_384()加密=====================
hhb = hashlib.sha3_384()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA3_384加密:", hhb.hexdigest()) #=================SHA3_512()加密=====================
hhb = hashlib.sha3_512()
ret = hhb.update(bytes("", encoding='utf-8'))
print("SHA3_512加密:", hhb.hexdigest())
算法示例的结果:
MD5加密: 113ccbcda570622489c183f6a6e0121e
SHA1加密: 40bd001563085fc35165329ea1ff5c5ecbdbbeef
SHA224加密: 78d8045d684abd2eece923758f3cd781489df3a48e1278982466017f
SHA256加密: a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
SHA512加密: 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2
SHA3_256加密: a03ab19b866fc585b5cb1812a2f63ca861e7e7643ee5d43fd7106b623725fd67
SHA3_384加密: 9bd942d1678a25d029b114306f5e1dae49fe8abeeacd03cfab0f156aa2e363c988b1c12803d4a8c9ba38fdc873e5f007
SHA3_512加密: 48c8947f69c054a5caa934674ce8881d02bb18fb59d5a63eeaddff735b0e9801e87294783281ae49fc8287a0fd86779b27d7972d3e84f0fa0d826d7cb67dfefc
基于hashlib.md5()对密码进行加密实现用户登录验证的示例:
#!/usr/bin/env python
# -*- coding:utf-8 -*- import hashlib
#基于MD5对密码进行加密实现用户登录验证 def md5(arg):
"""
使用hashlib.md5()对密码进行加密处理
:param arg: 需要加密处理的密码
:return:
"""
hash = hashlib.md5(bytes("我在学习python", encoding='utf-8')) #加盐,使用密码加密更有保障
hash.update(bytes(arg, encoding='utf-8'))
return hash.hexdigest() def login(username, password):
"""
用于用户登录验证
:param username: 用户名
:param password: 密码
:return: True,登录成功;False,登录失败。
"""
with open("user.txt", "r", encoding="utf-8") as f:
for line in f:
line = line.strip() #默认strip无参数,会去掉首尾空格、换行符;有参数则去除指定值
line_list = line.split("|") #以|符号提取用户名和密码
if username == line_list[0] and md5(password) == line_list[1]:
return True
else:
return False def register(username, password):
"""
用户注册
:param username:用户名
:param password:密码
:return: True,注册成功
"""
with open("user.txt", "a", encoding="utf-8") as f:
temp = "\n" + username + "|" + md5(password) # "\n"换行符
f.write(temp)
return True def user_exsit(username):
"""
注册时,判断用户名是否存在
:param username:用户名
:return:True, 用户名已存在
"""
with open("user.txt", "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
line_list = line.split("|")
if username == line_list[0]:
return True
return False def main():
print("欢迎您使用本系统,请输入你进行操作选项。")
inp = input("1.登录;2.注册。请输入编号: ")
if inp == "":
times = 1
while True:
if times == 4:
print("输入3次用户名或密码不正确,请在一小时后再重试。")
break
user = input("请输入你的用户名:")
pwd = input("请输入你的密码:")
is_login = login(user, pwd)
if is_login:
print("恭喜您!系统登录成功。")
break
else:
print("用户名或密码不正确。")
times += 1
if inp == "":
user = input("请输入你的用户名:")
pwd = input("请输入你的密码:")
if user_exsit(user):
print("用户名已经存在,注册失败!")
else:
ret = register(user, pwd)
if ret:
print("注册成功!")
else:
print("注册失败!") main()
加密后的user.txt的文件内容。

python-hashlib加密的更多相关文章
- python hashlib模块 md5加密 sha256加密 sha1加密 sha512加密 sha384加密 MD5加盐
python hashlib模块 hashlib hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, ...
- 【转】python模块分析之hashlib加密(二)
[转]python模块分析之hashlib加密(二) hashlib模块是用来对字符串进行hash加密的模块,明文与密文是一一对应不变的关系:用于注册.登录时用户名.密码等加密使用.一.函数分析:1. ...
- Python常用模块之hashlib(加密)
Python常用模块之hashlib(加密) Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据import ha ...
- 关于python hashlib模块的使用
hashlib hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 #!/usr/bin/ ...
- python hashlib、configparse、logging
一.hashlib 1.Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 2.摘要算法 通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目 ...
- hashlib 加密 与进度条
# 加密 ''' md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?') #字节才可以 print md5.hexdig ...
- python RSA加密、解密、签名
python RSA加密.解密.签名 python中用于RSA加解密的库有好久个,本文主要讲解rsa.M2Crypto.Crypto这三个库对于RSA加密.解密.签名.验签的知识点. 知识基础 加密是 ...
- Python hashlib加密模块
hashlib模块 简介: hashlib模块是一个提供了字符串加密功能的模块,包含MD5和SHA的加密算法.具体的加密支持有: MD5,sha1,sha224,sha256, sha384, sha ...
- python实现加密的方式总结
python实现加密的方式总结 原文地址 目录 基础知识扫盲 Base64 MD5 DES 3DES AES RSA 基础知识扫盲 对称加密 对称密钥加密 , 又叫私钥加密.即信息发送的方和接受方用一 ...
- python hashlib 详解
1.概述 摘要算法简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定 ...
随机推荐
- 使用springboot mybatis 查询时实体类中的驼峰字段值为null
看到返回结果以后主要分析了一下情况: 实体类的get.set方法确实 mapper.xml文件中的resultMap.resultType等原因导致 数据库中数据存在问题 经过检查与验证发现以上都不存 ...
- Java学习:异常的概念
异常 异常概念 异常:指的是程序在执行过程中,出现的非正常的情况,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象.Java ...
- ArrayDeque详解
美人如斯! ArrayDeque是java中对双端队列的线性实现 一.特性 无容量大小限制,容量按需增长: 非线程安全队列,无同步策略,不支持多线程安全访问: 当用作栈时,性能优于Stack,当用于队 ...
- golang学习笔记--接口
go 的接口类型用于定义一组行为,其中每个行为都由一个方法声明表示. 接口类型中的方法声明只有方法签名而没有方法实体,而方法签名包括且仅包括方法的名称.参数列表和结果列表. 只要一种数据类型的方法集合 ...
- 使用Dbvisualizer 连接 Elasticsearch
Dbvisualizer 安装 从网上下载该软件,并破解激活 下载地址:http://www.ddooo.com/softdown/142713.htm 1.下载解压,得到dbvisualizer p ...
- kafka集群安全化之启用kerberos与acl
一.背景 在我们部署完kafka之后,虽然我们已经可以“肆意”的用kafka了,但是在一个大公司的实际生产环境中,kafka集群往往十分庞大,每个使用者都应该只关心自己所负责的Topic,并且对其他人 ...
- npm升级到最新版本、指定版本
npm 升级到最新版本 //linux下 npm install -g npm npm升级到指定版本 //比如升级到5.6.0 npm install -g npm@5.6.0
- 28、IE报vuex requires a Promise polyfill in this browser问题解决
解决方法第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 npm install --save babel-polyf ...
- Crontab常用命令总结
一.启动服务 /sbin/service crond start 二.关闭服务 /sbin/service crond stop 三.重启服务 /sbin/service crond restart ...
- selenium 开启开发者工具(F12)
selenium 开启开发者工具(F12) options = webdriver.ChromeOptions(); options.add_argument("--auto-open-de ...