zoukankan      html  css  js  c++  java
  • day30 hashlib模块


    hashlib 提供摘要算法
      最常见的就是MD5,当然一般来说MD5已经被足够了
      不管算法多不一样,但是摘要的功能是不变的
      对于相同的字符串进行摘要,使用同一个算法得到的值总是不变的
      不同算法的话,会无法一致而不通过
      算法的复杂程度越高越安全,但是时间空间成本也会更高
    1 import hashlib
    2 md5 = hashlib.md5()
    3 md5.update(b'yangtuo')
    4 print(md5.hexdigest())
    5 # 2da474673e951b9e33aeb80290eb0501
    摘要算法
      密码的密文存储
      文件的一致性验证
      下载的时候检查下载文件和远程服务器的文件是否一致
      两台机器上的两个文件检查是否相等
      ps:
        必须是字节类型内容才能摘要处理


    模拟实例:

     1 # 模拟用户注册
     2 # 用户输入用户名,密码
     3 # 用户输入密码
     4 # 明文的密码进行摘要 得到一串密文后写入文件
     5 
     6 
     7 # 模拟用户登录
     8 import hashlib
     9 usr = input("username>>>")
    10 pwd = input("password>>>")
    11 with open("userinfo")as f :
    12     for line in f:
    13         user,passwd,role = line.split("|")
    14         md5 = hashlib.md5()
    15         md5.update(bytes(pwd,encoding="utf-8"))
    16         md5_pwd = md5.hexdigest()
    17         if usr == user and md5_pwd == passwd:
    18             print("login in ")
    19         else:print("go out")
    20 
    21 # 加盐
    22 #
    23 import hashlib
    24 md5 = hashlib.md5(bytes("salt",encoding="utf-8"))
    25 md5.update(b'alex3714')
    26 print(md5.hexdigest())
    27 
    28 # 动态加盐
    29 # 用户名 密码
    30 # 使用用户名的一部分或者直接整个用户名作为盐
    31 import hashlib
    32 md5 = hashlib.md5(bytes("salt",encoding="utf-8")+b"dhahdkashdawhd")
    33 md5.update(b'alex3714')
    34 print(md5.hexdigest())
    35 
    36 # 文件的一致性校验
    37 # 别加盐,别人才不知道你加了什么盐,而且仅仅是判断是否一致,又不是什么高级机密
    38 # 文件比较长的时候,可以分次进行update,一次
    39 import hashlib
    40 md5 = hashlib.md5()
    41 md5.update(b'alex')
    42 md5.update(b'3714')
    43 print(md5.hexdigest())



  • 相关阅读:
    C# 类型的创建
    C# 中4个访问符和8个修饰符详解
    C#命名空间详解namespace
    ContextMenuStrip 添加在窗体。点击右键不能显示问题解答
    C# 学习笔记 C#基础
    React-Navigation web前端架构
    Css animation 与 float 、flex 布局问题
    javaScript 工作必知(十一) 数组常用方法实现
    Vue 父子组件传值 props
    kafka 参数配置 1
  • 原文地址:https://www.cnblogs.com/shijieli/p/9939320.html
Copyright © 2011-2022 走看看