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

通过导入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. [Python]打印指定目录下所有子目录

    import os for root,dirs,files in os.walk(r"/home/os-hy01"): for dir in dirs: print(dir) -- ...

  2. [LeetCode]671. 二叉树中第二小的节点(递归)

    题目 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值. 给出这样的一个二叉树,你需要输出所有 ...

  3. [SpringBoot项目]问题及解决总结

    问题:MySQL 8.0版本连接报错:Could not create connection to database server 原因 MySQL8.0版本需要更换驱动为"com.mysq ...

  4. Vue render函数 函数时组件 jsx

    常规组件使用 定义组件 components/list/list.vue <template> <ul> <li v-for="(item, index) in ...

  5. 每日一道 LeetCode (48):最长回文子串

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  6. Java基础语法(10)-面向对象之三大特征

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

  7. MySql约束_设计_备份还原(资料二)

    今日内容 1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询 2. 约束 3. 多表之间的关系 4. 范式 5. 数据库的备份和还原 DQL:查询语句 1. 排序查 ...

  8. v-if和v-show的区别与使用

    1.共同点: v-if 和 v-show 都能实现元素的显示隐藏. 2.不同点: v-if显示隐藏是将dom元素整个添加或删除,v-show元素隐藏时,会在dom节点中把该元素设置css属性为disp ...

  9. 【Processing日常2】群星1

    之前在CSDN上发表过: https://blog.csdn.net/fddxsyf123/article/details/79747064

  10. a标签包裹div的问题

    示例代码 1 <a href="#"> 2 <div> 3 <a href="#"></a> 4 </di ...