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

  1. python 模块之-hashlib

    python 模块hashlib import hashlib m=hashlib.md5()         # 生成MD5加密对象 m.update('jiami-string'.encode(' ...

  2. python模块学习 hashlib

    一.hashlib概述 涉及加密服务:14. Cryptographic Services 其中 hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1.SHA224.SHA2 ...

  3. Python模块之hashlib模块、logging模块

    一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...

  4. Python模块:hashlib

    hashlib:提供了常见的摘要算法,如MD5,SHA1等. import hashlib m = hashlib.md5() m.update('how to use md5 in python h ...

  5. python模块之hashlib模块

    hashlib模块:提供摘要算法 格式: hashlib格式: obj = hashlib.算法(md5,sha....) obj.update(摘要内容:bytes类型) result = obj. ...

  6. python模块之hashlib加密

    40.加密模块:hashlib      1.           >>> import hashlib >>> ret1 = hashlib.md5()     ...

  7. python模块之hashlib

    摘要算法 1. 摘要算法又称为哈希算法.散列算法,是通过函数将任意长度的数据转化成固定长度的数据串(通常用16进制的字符串表示). 2. 摘要算法将通过摘要函数f()将数据转化成固定长度的摘要(dig ...

  8. [转] python 模块学习 hashlib

    转自: http://www.cnblogs.com/BeginMan/p/3328172.html 一.hashlib概述 涉及加密服务:14. Cryptographic Services 其中 ...

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

    摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...

随机推荐

  1. 作业要求 20181127-5 Beta发布用户使用报告

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2450 一.用户反馈 反馈截图(部分) 三.用户反馈情况统计图

  2. 树莓派3+rtl8812au开启monitor模式

    首先要有一块树莓派,要有一块rtl8812au的网卡. 这个网卡是支持monitor模式的,但是我原来装的驱动驱动在raspbian上开启monitor模式时提示,找不到设备. 然后换了一个驱动 ht ...

  3. 渐入OO课的深处,探索多线程的秘密——OO第二次博客总结

    一次又一次的挑战,一次又一次全新的知识,我来到了多线程的面前 第五次作业 1.度量分析 >第五次作业由于很大程度上调用的是前两次电梯的一些代码,所以存在的问题与前几次也十分相似.同时由于第一次使 ...

  4. 使用python快速搭建web服务器

    命令:python -m SimpleHTTPServer 8088 参考:https://www.cnblogs.com/harry-xiaojun/p/6739003.html https://w ...

  5. win10系统下载-靠谱推荐

    win10系统下载的靠谱推荐: 1.http://www.xitongtiandi.net/wenzhang/win10/12926.html 2.https://msdn.itellyou.cn/ ...

  6. vs2013 CodeLens

    那东西叫 CodeLens  只有VS2013 旗舰版 (update 2及以上) 才可以用,高级版 专业版都没有.如何打开CodeLens呢?在VS菜单栏 >> 工具 >> ...

  7. JAVA对象的初始化过程

    出处:http://blog.csdn.net/andrew323/article/details/4665379 下面我们通过两个例题来说明对象的实例化过程. 例1:   编译并运行该程序会有以下输 ...

  8. BETA-4

    前言 我们居然又冲刺了·四 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 过去两天完成了哪些任务 整理了一丢丢代码 接下来的计划 认真复习准备考试,挤时间把软工搞定 还剩下哪些 ...

  9. Ubuntu恢复被误删的文件

    主要内容转载自博客:https://blog.csdn.net/YLD10/article/details/80241160 写在前面,该方法只能用于误删的文件,若文件被覆盖,则无法恢复. 1.下载工 ...

  10. paperOne基于java web的简易四则运算出题网站

    项目成员:张金生     张政 需求概要 1.运算数均为正整数 2.包含的运算符有+,-,*,/ 3.除法运算结果为整除运算 4.批量生成题目并判题 核心功能分析 1.题目生成——java后端 题目生 ...