python 模块之hashlib
Hashlib模块
Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据,其他的所有加密算法使用方式上基本类似。
hashlib模块主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
使用方法如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/27 0027 16:09
# @Author : ming
import hashlib # MD5方式加密数据,一层加密
md5 = hashlib.md5() # 创建一个MD5的加密对象
md5.update(bytes("I am jack yang", encoding="utf-8")) # 要对那个字符串加密 就放在这里
print(md5.hexdigest()) # 拿到加密字符串
# 46d8cc5a97c734f140ebb122b54a9147 # 为了防止被撞库,可以在创建加密对象时加一个参数
md5 = hashlib.md5(bytes("yym", encoding="utf-8")) # 创建一个MD5的加密对象,并添加一个参数yym
md5.update(bytes("I am jack yang", encoding="utf-8")) # 要对那个字符串加密 就放在这里
print(md5.hexdigest()) # 拿到两层加密字符串
# 996bf846d82625d73c77f4a969b37edc # 如果字符串太长可以分开写
md5 = hashlib.md5(bytes("yym", encoding="utf-8")) # 创建一个MD5的加密对象,并添加一个参数yym
md5.update(bytes("I am ", encoding="utf-8")) # 要对那个字符串加密 就放在这里
md5.update(bytes("jack yang", encoding="utf-8")) # 要对那个字符串加密 就放在这里
print(md5.hexdigest()) # 拿到两层加密字符串
# 996bf846d82625d73c77f4a969b37edc
判断用户登录的小程序
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/27 0027 16:09
# @Author : ming
import hashlib def User_information_reading():
"""
让用户输入用户名和密码,并且把密码进行MD5加密,加盐"hello"
:return: 返回一个右用户名和加密后的密码组成的键值对
"""
flag = True
while flag:
user_info = {} # 存储用户每次输入的信息
username = input("请输入用户名:")
password = input("请输入密码:")
if len(password) >= 8:
hash_md5 = hashlib.md5(bytes("hello", encoding="utf-8"))
hash_md5.update(bytes(password, encoding="utf-8"))
password_md5 = hash_md5.hexdigest()
user_info[username] = password_md5
flag = False
return user_info
else:
print("密码至少8位") def register():
"""
# 用户注册,把用户信息添加到用户数据库中
:return:
"""
user_info = User_information_reading() # 读取用户信息
user_db.append(user_info) # 添加到数据库中
return "注册成功" def login():
"""
判断用户登录
:return: True:登录成功 False:登录失败
"""
user_info = User_information_reading() # 读取用户信息
if user_info in user_db: # 判断用户信息在数据库中是否可以匹配
return "登录成功"
else:
return "登录失败" if __name__ == '__main__':
user_db = [] # 定义一个用户信息数据库
while True:
print("1、用户注册")
print("2、用户登录")
print("3、退出程序")
num = input("请选择:")
if num == "":
print(register())
elif num == "":
print(login())
elif num == "":
exit("\ngoodbye")
else:
exit("\ninput error")
python 模块之hashlib的更多相关文章
- python 模块之-hashlib
python 模块hashlib import hashlib m=hashlib.md5() # 生成MD5加密对象 m.update('jiami-string'.encode(' ...
- python模块学习 hashlib
一.hashlib概述 涉及加密服务:14. Cryptographic Services 其中 hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1.SHA224.SHA2 ...
- Python模块之hashlib模块、logging模块
一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...
- Python模块:hashlib
hashlib:提供了常见的摘要算法,如MD5,SHA1等. import hashlib m = hashlib.md5() m.update('how to use md5 in python h ...
- python模块之hashlib模块
hashlib模块:提供摘要算法 格式: hashlib格式: obj = hashlib.算法(md5,sha....) obj.update(摘要内容:bytes类型) result = obj. ...
- python模块之hashlib加密
40.加密模块:hashlib 1. >>> import hashlib >>> ret1 = hashlib.md5() ...
- python模块之hashlib
摘要算法 1. 摘要算法又称为哈希算法.散列算法,是通过函数将任意长度的数据转化成固定长度的数据串(通常用16进制的字符串表示). 2. 摘要算法将通过摘要函数f()将数据转化成固定长度的摘要(dig ...
- [转] python 模块学习 hashlib
转自: http://www.cnblogs.com/BeginMan/p/3328172.html 一.hashlib概述 涉及加密服务:14. Cryptographic Services 其中 ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
随机推荐
- spring boot的maven项目报404错误
$.ajax({ async: false, type: "POST", url:'searchFileSource', contentType : "applicati ...
- 在Windows下制作静态库和动态库
一:静态库的创建 VC++6.0中new一个的为win32 static library工程,之后有二个选项.根据需求选吧. 具体的类或者函数的添加过程和标准的工程一样,直接创建新的类或者添加新 的. ...
- 手机端学习助手的说明书需求以及团队PM选择
1.产品的背景 课堂上知识容量大.密度高,学生不能立刻掌握所学知识点,同时,网上资料冗杂繁复,指向性不强,导致学生不能高效的学习,为了充分利用学生的课余时间,培养学生自学能力,辅助老师教学,我们小组希 ...
- Oracle 11g R2 for Win7旗舰版(64位)- 安装
1.下载Oracle 11g R2 for Windows的版本 下载地址:http://www.oracle.com/techne ...
- Week2-作业1——关于阅读《构建之法》第1、2、16章的疑问与感悟
关于阅读<构建之法>第1.2.16章的疑问与感悟 术语解释: 第2章,23页 什么是代码覆盖率? ———————————————————— 在测试中的代码覆盖率是指,你运行测试用例后,走过 ...
- keil c51笔记
第一章 Keil C51开发系统基本知识 第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性. ...
- ps -aux 命令下的前几行内容解释 与 top命令下的前几行内容解释
系统进程分为5种不同的状态: R(运行):正在运行或在运行队列中等待 S(中断):休眠中,在等待某个条件的形成或接受到信号 D(不可中断):收到信号不唤醒和不可运行.进程必须等待直到有中断发生 Z(僵 ...
- 如何提高cxgrid的刷新速度
如果View的类型是cxGridDBTableView: 1.cxGrid.DisableControls;cxGrid.EnableControls; 如仍觉得慢,可以把 cxGrid1DBTabl ...
- [转帖]七牛云对HTTPS 的解释
感觉对RTT 还有 建立连接的说明挺好的 转帖一下 学习 https://www.cnblogs.com/qiniu/p/6856012.html 序•魔戒再现 几天前,OpenSSL ...
- Android 目录结构
Android目录结构中,values目录下对应的是应用程序所需要的数据,网上看到了一个包含values-v11等values-*的写法. 是为了进行分辨率的自适应????????? 因为还没有涉及到 ...