pyhthon常用模块hashlib
python hashlib模块
一,hashlib模块主要用于加密,其中提供sha1,sha224,sha256,sha384,sha512,md5算法。常用的使用md5即可完成需求。
一,使用md5普通加密
import hashlib m = hashlib.md5() m.update(b'cnblog.com') print(m.hexdigest())
二,2次加密,其实就是将第一次的要加密的字符串和第二次要加密的字符串拼接起来做一次加密
import hashlib
m2 = hashlib.md5('www.'.encode('utf-8'))
m2.update('cnblogs.com'.encode('utf-8'))
print(m2.hexdigest())
或者
import hashlib
m3 = hashlib.md5()
m3.update('www.'.encode('utf-8'))
m3.update('cnblogs.com'.encode('utf-8'))
print(m3.hexdigest())
或者直接将2次加密的字符串直接拼接
import hashlib
m4 = hashlib.md5()
m4.update('www.cnblogs.com'.encode('utf-8'))
print(m4.hexdigest())
三,使用其他加密算法,和md5类似,比如sha512
import hashlib m5 = hashlib.sha512() m5.update(b'www') print(m5.hexdigest())
小例子:
import hashlib import sys class UserInfo(object):
def __init__(self):
print(
"""
1,注册
2,登陆
3,退出 """
)
#此方法用于加密用户的密码
def md5(self,password):
md5_pwd = hashlib.md5()
# md5_pwd.update(bytes(password,encoding='utf-8'))
md5_pwd.update(password.encode('utf-8')) return md5_pwd.hexdigest() #此方法用于后面注册和登陆公共输入接口
def input(self):
username = input('请输入账号:')
password = input('请输入密码:')
return (username,password) #注册方法
def register(self):
username,password= self.input()
with open('userinfo.txt','r') as f:
while True:
line = f.readline()
if line:
if username == line.split()[0]:
print('user alreay register')
break
else:
password = self.md5(password)
with open('userinfo.txt','a') as f:
f.write('{0}\t{1}\n'.format(username,password))
print('rgister sucessful,Please login ')
break #登陆方法
def login(self):
username,password= self.input()
with open('userinfo.txt','r') as f:
for line in f:
if line.split()[0] == username and line.split()[1] == self.md5(password):
print('login sucessful!')
break
elif line.split()[0] == username and line.split()[1] != self.md5(password):
print('passwd error!')
break
else:
print('user not register!!!')
print('login fail!!!') #主程序
def main():
while True:
user = UserInfo()
n = int(input('please input number:>>>'))
if n == 1:
user.register()
elif n == 2:
user.login()
else:
sys.exit(0) if __name__ == '__main__':
main()
pyhthon常用模块hashlib的更多相关文章
- 常用模块(hashlib,configparser,logging)
常用模块(hashlib,configparser,logging) hashlib hashlib 摘要算法的模块md5 sha1 sha256 sha512摘要的过程 不可逆能做的事:文件的一致性 ...
- 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess
hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...
- Python全栈之路----常用模块----hashlib加密模块
加密算法介绍 HASH Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...
- python常用模块——hashlib模块
Python的hashlib提供了常见的摘要算法,如md5.sha1等 什么是摘要算法了?摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转化魏一个长度固定的数据串(通常用十六进制的 ...
- 常用模块 - hashlib模块
一.简介 Python的hashlib提供了常见的摘要算法,如MD5.SHA1.SHA224.SHA256.SHA384.SHA512等算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过 ...
- python常用模块集合
python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...
- Python常用模块-摘要算法(hashlib)
Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- 常用模块二(hashlib、configparser、logging)
阅读目录 常用模块二 hashlib模块 configparse模块 logging模块 常用模块二 返回顶部 hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SH ...
随机推荐
- Go语言总结
- 005. Asp.Net Routing与MVC 之三: 路由在MVC的使用
上次讲到请求如何激活Controller和Action,这次讲下MVC中路由的使用.本次两个关注点: 遗留:ModelBinder.BindModel的过程 MVC中路由的使用 MVC 5中的Acti ...
- CentOS 6.5静态IP的设置(NAT和桥接联网方式都适用)
不多说,直接上干货! 为了方便,用Xshell来.并将IP设置为静态的.因为,在CentOS里,若不对其IP进行静态设置的话,则每次开机,其IP都是动态变化的,这样会给后续工作带来麻烦.为此,我们需将 ...
- 交换路由中期测验20181205(DHCP、IOS、静态路由、RIP、EIGRP)
测试拓扑: 知识点:DHCP:IOS的备份恢复与更新:静态路由:动态路由(RIP):动态路由(EIGRP) 1.DHCP 拓扑: 主要指令: ip dhcp pool 地址池名称 network ...
- Spring Cloud Gateway入门
1.什么是Spring Cloud GatewaySpring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技 ...
- Kafka的Log存储解析
引言 Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的.每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建 ...
- 页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果
Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航 ...
- Springboot项目打包成jar运行2种方式
最近公司有个项目需要移植到SpringBoot框架上,项目里面又有许多第三方jar包,在linux服务器上最方便的就是用jar的方式来运行SpringBoot项目了,因此我研究了2种打jar包的方式, ...
- Java Generator
以前我以为只有Python才会有generator,看来当时的我才年轻,后来认真研读<Thinking in Java>之后大有感悟,原来Java亦有generator,故做一次记录分享. ...
- css中的float属性以及清除方法 (2011-09-03 17:36:26)
CSS里面的浮动属性是布局的常用工具,只有真正了解它并熟练使用才能将它的优点发挥到极致. 许多页面中都有文字绕图效果,并且各区块分布得错落有置,很多朋友在自学CSS布局时为了做出这些效果往往会被div ...