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

通过导入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. 20190923-08Linux压缩和解压类 000 016

    gzip/gunzip 压缩 1.基本语法 gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令) 2.经验技巧 (1)只能压缩文 ...

  2. [Oracle/SQL]找出id为0的科目考试成绩及格的学生名单的四种等效SQL语句

    本文是受网文 <一次非常有意思的SQL优化经历:从30248.271s到0.001s>启发而产生的. 网文没讲创建表的数据过程,我帮他给出. 创建科目表及数据: CREATE TABLE ...

  3. ubuntu18.04 docker安装mongo

    问题 在docker中安装的mongo连接不上,报错信息 feng@ubuntu:/etc/docker$ mongo MongoDB shell version v3.6.3 connecting ...

  4. 白嫖党看番神器 AnimeSeacher

    - Anime Searcher - 简介 通过整合第三方网站的视频和弹幕资源, 给白嫖党提供最舒适的看番体验~ 目前有 4 个资源搜索引擎和 2 个弹幕搜索引擎, 资源丰富, 更新超快, 不用下载, ...

  5. 认识一下python

    python 目录 python 1.python创始人 2.python的设计目标 3.为什么使用python 4.python的特点 5.python的优缺点 1.python创始人 1.1989 ...

  6. (专题一)06 MATLAB的算术运算

    基本算术运算 乘法运算:A的行数等于B的列数(A,B两矩阵维数和大小相容) 除法运算 逻辑运算 真为1,假为0 优先级,算术运算的优先级最高,逻辑运算的优先级最低,但逻辑非运算是单目运算,他的优先级比 ...

  7. 关于弹性布局flex

    什么时候使用flex布局? 当页面排版涉及左右浮动.垂直居中等时,应使用flex布局来避免传统的盒式布局带来的一些Bug. 如何使用flex布局? 在目标元素的父元素设置csss属性.display: ...

  8. java Synchronized集合

    在Collections存在相关"Synchronized"支持同步的集合, 在java1.0 也存在"Vector"; 为什么会选择放弃"Vecto ...

  9. 二分类问题续 - 【老鱼学tensorflow2】

    前面我们针对电影评论编写了二分类问题的解决方案. 这里对前面的这个方案进行一些改进. 分批训练 model.fit(x_train, y_train, epochs=20, batch_size=51 ...

  10. Docker操作命令——查看、停止、删除容器

    列出所有容器 ID docker ps -aq 停止所有容器 docker stop $(docker ps -aq) 停止单个容器 docker stop 要停止的容器名 删除所有容器 docker ...