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的更多相关文章

  1. 常用模块(hashlib,configparser,logging)

    常用模块(hashlib,configparser,logging) hashlib hashlib 摘要算法的模块md5 sha1 sha256 sha512摘要的过程 不可逆能做的事:文件的一致性 ...

  2. 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess

    hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...

  3. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  4. python常用模块——hashlib模块

    Python的hashlib提供了常见的摘要算法,如md5.sha1等 什么是摘要算法了?摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转化魏一个长度固定的数据串(通常用十六进制的 ...

  5. 常用模块 - hashlib模块

    一.简介 Python的hashlib提供了常见的摘要算法,如MD5.SHA1.SHA224.SHA256.SHA384.SHA512等算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过 ...

  6. python常用模块集合

    python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...

  7. Python常用模块-摘要算法(hashlib)

    Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...

  8. 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 ...

  9. 常用模块二(hashlib、configparser、logging)

    阅读目录 常用模块二 hashlib模块 configparse模块 logging模块   常用模块二 返回顶部 hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SH ...

随机推荐

  1. golang中GOPATH的简单理解

    1.为什么要配置GOPATH 配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go get 命令下载第三方的包到自己的项目的src下和相关的执行文件bin目录,和中间文件pkg sr ...

  2. Python --代码风格检查 pep8

    pip3 install pycodestyle pycodestyle .. Pep8编码规范 https://blog.csdn.net/ratsniper/article/details/789 ...

  3. Python解析HDF文件 分类: Python 2015-06-25 00:16 743人阅读 评论(0) 收藏

    前段时间因为一个业务的需求需要解析一个HDF格式的文件.在这之前也不知道到底什么是HDF文件.百度百科的解释如下: HDF是用于存储和分发科学数据的一种自我描述.多对象文件格式.HDF是由美国国家超级 ...

  4. centos7 部署YApi

    =============================================== 2018/6/5_第2次修改                       ccb_warlock 更新说 ...

  5. Android 系统服务

    模拟器版本 Android 4.1.2 - API Level 16 CMD 下输入:adb shell service list   服务名 对象 0 phone com.android.inter ...

  6. 以ActiveMQ为例JAVA消息中间件学习【2】

    前言 之前我们学习了什么是消息中间件,以ActiveMQ为例做了一个最简单的消息中间件的实现.但是我们做的就只能算是个例子而已,因为在实际的项目中肯定会有spring插一脚,所以spring肯定有来管 ...

  7. Visual Studio 2012 智能提示功能消失解决办法

    安装为Visual Studio 2012且更新到了Update3,但是发现智能提示功能用不了,查了一下,网上各种资料,重装VS,连重装系统的都有.不过有很多朋友都是使用命令行重置VS的方法解决了这个 ...

  8. [转]谈谈Java中"=="与"equals()"

    equals是Object超类中的一个方法,这个方法的实现就是通过==号实现的,==号比较的是两个对象的地址是否相同,在代码中体现出来就是比较两个对象引用中保存的地址是否相同,==能够判断的只是两个对 ...

  9. 常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战.

    常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战. PS:上面是操作.最后是原理 一丶需要了解的API 使用全局钩子注入.我们需要了解几个WindowsAPI. ...

  10. Mysql半同步复制模式说明及配置示例 - 运维小结

    MySQL主从复制包括异步模式.半同步模式.GTID模式以及多源复制模式,默认是异步模式 (如之前详细介绍的mysql主从复制).所谓异步模式指的是MySQL 主服务器上I/O thread 线程将二 ...