模块 hashlib模块

hashlib模块  提供摘要算法

主要做对比,比较两段代码是否完全一致

不管算法多么不同,摘要功能始终不变,

对同一个字符串进项同一算法摘要得到的值始终不变

MD5值的生成

import hashlib
sha1 = hashlib.md5()  #一定加括号
sha1.update(bytes(‘alex3421‘,encoding=‘utf-8‘))
print(sha.hexdigest())  

sha 算法随着算法复杂程度的增加,时间空间都会提高

密码的密文存储

文件一致性验证(不需要加盐,别人不知道你的盐是什么)

1、在下载时,检查我们下载的文件和远程服务器上的文件是否一致

2、两台机器上的两个文件你想检查这两个文件是否相等

import hashlib
usr1 = input(‘请输入注册用户名>>>‘)
psd1 = input(‘密码>>>‘)
with open(‘file‘) as f3:
    for  i in  f3:
        use2,psd2=i.split(‘|‘)
        if use2 == usr1:
            print(‘已存在用户名‘)
    else:
        with open(‘file‘,‘a‘) as f1:
            md5 = hashlib.md5(bytes(usr1[:2],encoding=‘utf-8‘)+bytes(‘Ebola‘,encoding=‘utf-8‘))
            md5.update(bytes(psd1,encoding=‘utf-8‘))
            md5_psd1 = md5.hexdigest()
            f1.write(‘{}|{}\n‘.format(usr1,md5_psd1))
usr = input(‘请输入用户名>>>‘)
psd = input(‘密码>>>‘)
with open(‘file‘) as f:
    for  i in f:
        username,passwd = i.split(‘|‘)
        passwd = passwd.strip()
        md5 = hashlib.md5(bytes(usr[:2],encoding=‘utf-8‘)+bytes(‘Ebola‘,encoding=‘utf-8‘))  #动态加盐
        md5.update(bytes(psd,encoding=‘utf-8‘))
        md5_psd = md5.hexdigest()
        if usr == username and md5_psd == passwd:
            print(‘登陆成功‘)

原文地址:https://www.cnblogs.com/Ebola-/p/8336943.html

时间: 2024-08-29 21:29:18

模块 hashlib模块的相关文章

python - 常用模块 - hashlib模块

python3中的hashlib库主要是为大家提供了python中常用的加密方式 其中SHA1官方不再支持,不建议用.md5()的安全性不如SHA2,所以推荐使用SHA2做加密算法 hashlib里面的加密方式都是单向加密,没有反加密方式,所以在使用时,比如密码验证,在数据库里面存储的是加密后的值,再把用户输入的密码进行相同加密方式,再对比 hashlib里面主要提供 md5, sha1, sha224, sha256, sha384, sha512 算法各种加密算法在使用上,只是声明加密方式的

python模块: hashlib模块, configparse模块, logging模块

一. hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过.摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难.而且,对原

包/logging模块/hashlib模块/openpyxl模块/深浅拷贝

一.包 1.什么是包 包就是一系列模块文件的结合体,表示形式是一种文件夹,该文件夹内部通常有一个__init__.py文件. 2.为什么要用包 当一个模块功能太多的时候不方便进行管理,我们用包来进行管理 3.包的使用 首次发导入包发生的几件事: 1.先产生一个执行文件的名称空间 2.创建包下面的__init__文件的名称空间 3.执行包下面的__init__.py文件中的代码,将产生的名字放在包下面的__Init__,py文件名称空间中 4.在执行文件中拿到 一个指向包下面的__Init__文件

25.Python序列化模块,hashlib模块, configparser模块,logging模块,异常处理

一.序列化模块 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(di

常用模块 - hashlib模块

一.简介 Python的hashlib提供了常见的摘要算法,如MD5.SHA1.SHA224.SHA256.SHA384.SHA512等算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 举个例子,你写了一篇文章,内容是一个字符串“how to use python hashlib – by mayi”,并附上这篇文章的摘要是“75b850b26f4e75b1ad3db76a255065f2”.如果

Python操作数据库及hashlib模块

一.hashlib模块 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib #导入模块 ######## md5 ########### m = hashlib.md5() #创建一个对象 m.update(b"hhf") #加密字符串 b代表byte,是把字符串转换成byte类型,也可以用bytes()强制转换

模块---hashlib、configparse、logging

一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个数据串使用的十六进制表示.摘要算法是一个单向函数,计算容易,如果想要反推摘要算法那是非常喜困难的,而且 如果对原数据做了一个bit的修改,都会导致计算出的摘要完全不同,我们经常使用摘要对比数据是否被修改过和密码的加密. MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一

python模块 os&sys&subprocess&hashlib模块

os模块 # os模块可根据带不带path分为两类 # 不带path print(os.getcwd()) # 得到当前工作目录 print(os.name) # 指定你正在使用的操作系统,windows为nt,linux为“posix" os.shell() # 运行shell命令 print(os.environ) # 返回操作系统所有的环境变量 print(os.getenv("home")) # 读取指定环境变量的值 os.environ.setdefault(&qu

hashlib模块和hmac模块

hashlib模块和hmac模块 hashlib模块 一.导入方式 import hashlib 二.作用 无论你丢什么字符串,他都会返回一串 固定长度的字符串 三.模块功能 3.1 经常使用 import hashlib m = hashlib.md5() #生成一个对象 m.update(b'123') m.update(b'456') print(m.hexdigest()) --------------------------------------------------------