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

通过导入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. 20190925-01安装redis 000 022

    1.将redis压缩包放入Linux系统有4种办法. 第一:如果安装了VMware Tools工具可以直接进行拖拽 第二:在windows中找到配置好的共享文件夹将redis压缩包放入其中,在Linu ...

  2. tomcat-8.0.18 cluster 使用Redis共享Session 配置

    事实证明 这位作者提在https://jingyan.baidu.com/article/ac6a9a5e10415f2b653eace8.html 最底下的http://pan.baidu.com/ ...

  3. pythont多线程

    import threading # 线程模块 def function(num): pass thread_1 = threading.Thread(target=function, args=(1 ...

  4. [程序员代码面试指南]递归和动态规划-最长公共子串问题(DP,LCST)

    问题描述 如题. 例:输入两个字符串 str1="1AB234",str2="1234EF" ,应输出最长公共子串"234". 解题思路 状 ...

  5. JVM内存结构和Java内存模型

    一.JVM 首先看一张JVM结构图(某度找的) 主要看运行时数据区,里边有方法区,堆,java虚拟机栈,本地方法栈,程序计数器.其中方法区和堆是线程共享的,也是JVM进行垃圾收集的区域,java虚拟机 ...

  6. 线程的阻塞 sleep() wait() yield()

    为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了 ...

  7. three.js学习4_光源

    Three.Light 首先展示的是使用半球光引用的效果, 光源直接放置于场景之上,光照颜色从天空光线颜色颜色渐变到地面光线颜色.光照主要有 AmbientLight 环境光 DirectionalL ...

  8. Redis中的订阅模式

    redis中的客户端可以订阅一个自定义的频道,接受来自该频道的消息 订阅 订阅指定频道-SUBSCRIBE SUBSCRIBE channel [channel2]... SUBSCRIBE 频道名 ...

  9. linux学习(七)文件打包和压缩命令

    一.前言 在Windows操作系统下,我们会使用WinRAR或者快压等等的压缩软件来进行压缩或者解压. 在Linux下当然也存在压缩或解压的操作,下面我们就来学习一下在Linux下是怎么压缩和解压的! ...

  10. [BJDCTF 2nd]文件探测

    [BJDCTF 2nd]文件探测 这两天刷题碰到了一道稍微有难度的题,记录一下,有一些点是未被掌握到的. home.php: <?php setcookie("y1ng", ...