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. 大华摄像头WEB页面集成

    对于海康.大华的摄像头web页面内的集成方式,根据浏览器类型,通常是采用以下形式: IE内核:调用ocx控件 例如: <object width="100%" height= ...

  2. TeamWork#3,Week5,Bing Input Method vs Sogou Input Method

    现在电脑上用五笔的用户越来越少了,好的拼音输入法也是难求.必应输入法的前身英库拼音输入法来自微软亚洲研究院的多项基础研究成果.最新的必应输入法不仅保留了英库拼音输入法的各项优势,还结合了必应的搜索体验 ...

  3. 奔跑吧DKY——团队Scrum冲刺阶段-Day 1-领航

    各个成员在 Alpha 阶段认领的任务 修改 序号 修改 具体描述 1 游戏过程 取消原来的跳跃和俯身按钮,保留跳跃的功能,可以触屏滑动来躲避地面障碍物,也可以躲避另一种陷阱障碍物 2 闯关功能 取消 ...

  4. 2017-2018-1 Java演绎法 第九、十周 作业

    团队成员 [20162315 马军] [20162316 刘诚昊] [20162317 袁逸灏(组长)] [20162319 莫礼钟] [20162320 刘先润] [20162330 刘伟康] 项目 ...

  5. fcn模型训练及测试

    1.模型下载 1)下载新版caffe: https://github.com/BVLC/caffe 2)下载fcn代码: https://github.com/shelhamer/fcn.berkel ...

  6. 在onResume()中调用getIntent()得不到Extra的问题

    之前 想做activity间的传值,注意 不是 startActivityforResult的那种, 在启动了多层activity再次启动activity想进入到singleTask的MainActi ...

  7. A网站访问B网站,跨域问题

    跨域异常:XMLHttpRequest cannot load  ''. No 'Access-Control-Allow-Origin' header is present on the reque ...

  8. 事件ID:7026(“下列引导或系统启动驱动程序无法加载: cdrom”)的解决方法

     电脑没有安装光驱,而是使用USB光驱/虚拟光驱软件,每次开机后"事件查看器"都显示错误:"下列引导或系统启动驱动程序无法加载: cdrom"(事件ID:7 ...

  9. Cron表达式简单的介绍

    1.Cron是什么,用来做什么的 根据百度百科的解释:计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思.在Linux中,我们经常用到 cron 服务器来完成这项工作.cron服务器可以 ...

  10. 【JavaScript】table里面点击某td获取同一行tr的其他td值

    某td的input(保存按钮)上绑定方法,点击按钮保存该行所有数据 function locationedit(num){ var ordernumber = $("#"+num) ...