一.当用明文密码进行信息存储的时候,会导致密码的泄露,如何解决问题

通过导入hashlib模块,利用里面存在的算法对字符串进行加密计算得到一串密文的结果

1.这个过程不可逆

2.对于同一个字符串,同一种算法 计算的结果永远是相同的

3.对于不同的字符串,计算的结果总是不同的

import hashlib
# hashlib.md5 # 最通用\最快捷\相对简单
# hashlib.sha1 # 已经开始被大家广泛应用
md5_obj = hashlib.md5()
md5_obj.update('alex3714'.encode('utf-8'))
ret = md5_obj.hexdigest()
print(ret)#aee949757a2e698417463d47acac93df

通过input输入pwd,通过md5算法进行加密

pwd = input('>>>')
md5_obj = hashlib.md5()
md5_obj.update(pwd.encode('utf-8'))
ret = md5_obj.hexdigest()
print(ret)
# 登陆 作业
# 注册的时候,用户名|密文密码 记录到文件里
# 登陆的时候,密码用同样的方式转成密文
# 和文件中的进行比对
# 确认一致之后 登陆成功!

通过撞库可以到上面的比较简单的密码

如何使密码更复杂

通过更复杂的密码
对于程序员来说:通过加盐让你的密码更加安全

# 加固定的盐
# md5_obj = hashlib.md5('任意的字符串'.encode('utf-8'))
# md5_obj.update('123456'.encode('utf-8'))
# ret = md5_obj.hexdigest()
# print(ret)

通过猜密码还是可能猜出加了固定盐的密码
通过动态加盐-是最安全的存储密码的方式

# md5_obj = hashlib.md5(alex.encode('utf-8'))
# md5_obj.update(pwd.encode('utf-8'))
# ret = md5_obj.hexdigest()
# print(ret)
# md5_obj = hashlib.sha1('alex'.encode('utf-8'))
# md5_obj.update('pwd'.encode('utf-8'))
# ret = md5_obj.hexdigest()
# print(ret)

hashlib模块

import hashlib
# with open('file','rb') as f :
# content = f.read()
# md5_obj = hashlib.md5()
# md5_obj.update(content)
# print(md5_obj.hexdigest())
#
# with open('file1','rb') as f :
# content = f.read()
# md5_obj = hashlib.md5()
# md5_obj.update(content)
# print(md5_obj.hexdigest())
#下面两个函数结果相等
# md5_obj = hashlib.md5()
# md5_obj.update('hello,world'.encode('utf-8'))
# print(md5_obj.hexdigest())
#
#
# md5_obj = hashlib.md5()
# md5_obj.update('hello,'.encode('utf-8'))
# md5_obj.update('world'.encode('utf-8'))
# print(md5_obj.hexdigest())
# 文件非常大 大到4g的文件

# def md5_file():
# md5_obj = hashlib.md5()
# with open('file','rb') as f :
# for line in f:
# md5_obj.update(line)
# print(md5_obj.hexdigest())
#
# md5_file()

day32 Pyhton hashlib模块 总结异常处理的更多相关文章

  1. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  2. python笔记7 logging模块 hashlib模块 异常处理 datetime模块 shutil模块 xml模块(了解)

    logging模块 日志就是记录一些信息,方便查询或者辅助开发 记录文件,显示屏幕 低配日志, 只能写入文件或者屏幕输出 屏幕输出 import logging logging.debug('调试模式 ...

  3. day32 Pyhton 异常处理

    一.内容回顾 反射的另外两个内置函数 setattr delattr a.b=c 与 setattr(a,'b',c)相对 del a.b 与 delattr(a,'b') 两个内置函数 A,B(A) ...

  4. python进阶(8):常用模块2+异常处理

    前段时间讲了很多的模块应为当时面向对象没有讲有几个没有说今天补上,再说一个异常处理. 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈 ...

  5. python hashlib模块 logging模块 subprocess模块

    一 hashlib模块 import hashlib md5=hashlib.md5() #可以传参,加盐处理 print(md5) md5.update(b'alex') #update参数必须是b ...

  6. Python 入门之 内置模块 -- hashlib模块

    Python 入门之 内置模块 -- hashlib模块 1.hashlib 摘要算法,加密算法 (1)主要用途: <1> 加密 : md5 sha1 sha256 sha512 md5, ...

  7. python标准模块(time、datetime及hashlib模块)

    一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...

  8. Python hashlib模块 (主要记录md5加密)

    python提供了一个进行hash加密的模块:hashlib 下面主要记录下其中的md5加密方式(sha1加密一样把MD5换成sha1) >>> import hashlib > ...

  9. Python学习笔记——基础篇【第六周】——hashlib模块

    常用模块之hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import ...

随机推荐

  1. 一个极简Jsp工程下载

    下载地址:https://files.cnblogs.com/files/xiandedanteng/SimpleJspWebApp20191227.zip 要得到war文件,右键点项目->Ex ...

  2. js 向上滚屏

    <!doctype html><html><head><meta charset="utf-8"><title>< ...

  3. python基础:用yagmail模块发邮件

    一.yagmail模块安装 网上下载的yagmail模块安装以后,在使用过程中,如果附件有中文,会显示乱码. pip install yagmail-0.10.212-py2.py3-none-any ...

  4. eleLogger主题评论区(反馈与建议)

    // run $('#blog_post_info, #BlogPostCategory, #post_next_prev, #blog_post_info_block').remove() $('# ...

  5. A Funny Game(POJ 2484)

    原题如下: A Funny Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7108   Accepted: 446 ...

  6. vue3 报错解决:找不到模块‘xxx.vue’或其相应的类型声明。(Vue 3 can not find module)

    最近在用 vue3 写一个小组件库,在 ts 文件中引入 .vue 文件时出现以下报错: 报错原因:typescript 只能理解 .ts 文件,无法理解 .vue文件 解决方法:在项目根目录或 sr ...

  7. Windows Server系统部署MySQL数据库

    由于工作需要在阿里云服务器中使用MySQL,所以安装一下MySQL数据库,中间也踩了一些坑,现在将整个过程给大家记录下来,便于后续查找. 阿里云服务器是WinServer2012系统,之前在Windo ...

  8. RXJAVA之Subject

    RxJava中常见的Subject有4种,分别是 AsyncSubject. BehaviorSubject.PublishSubject. ReplaySubject. AsyncSubject 使 ...

  9. Spring学习(五)bean装配详解之 【XML方式配置】

    一.配置Bean的方式及选择 配置方式 在 XML 文件中显式配置 在 Java 的接口和类中实现配置 隐式 Bean 的发现机制和自动装配原则 方式选择的原则 最优先:通过隐式 Bean 的发现机制 ...

  10. MySql WorkBench 导入sql文件 中文出现乱码

    在workbench中导入sql文件. 查看系统的编码. 导入sql文件时出现了如下警告.但是文件是UTF-8.由于包含中文,使用latin1编码方式会出现乱码. 选择UTF-8,出现错误. 不知道什 ...