• 模块讲解----hashlib模块(加密)


    作用

    用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

     语法

     1 import hashlib
     2 
     3 #md5加密:
     4 obj = hashlib.md5()
     5 obj.update(bytes('123',encoding='utf-8'))
     6 result = obj.hexdigest()
     7 print(result)
     8 
     9 
    10 #md5二次加密:
    11 obj1 = hashlib.md5(bytes('MGFhMWJiNjQ2MTAMDMwMzlmNTM2ZjZ',encoding='utf-8'))
    12 obj1.update(bytes('123',encoding='utf-8'))
    13 result1 = obj1.hexdigest()
    14 print(result1)
    15 
    16 
    17 # ######## md5 ########
    18 hash = hashlib.md5()
    19 # help(hash.update)
    20 hash.update(bytes('admin', encoding='utf-8'))
    21 print(hash.hexdigest())
    22 print(hash.digest())
    23  
    24  
    25 ######## sha1 ########
    26  
    27 hash = hashlib.sha1()
    28 hash.update(bytes('admin', encoding='utf-8'))
    29 print(hash.hexdigest())
    30  
    31 # ######## sha256 ########
    32  
    33 hash = hashlib.sha256()
    34 hash.update(bytes('admin', encoding='utf-8'))
    35 print(hash.hexdigest())
    36  
    37  
    38 # ######## sha384 ########
    39  
    40 hash = hashlib.sha384()
    41 hash.update(bytes('admin', encoding='utf-8'))
    42 print(hash.hexdigest())
    43  
    44 # ######## sha512 ########
    45  
    46 hash = hashlib.sha512()
    47 hash.update(bytes('admin', encoding='utf-8'))
    48 print(hash.hexdigest())
    49 
    50 注意:以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
    51 
    52 import hashlib
    53  
    54 # ######## md5 ########
    55  
    56 hash = hashlib.md5(bytes('898oaFs09f',encoding="utf-8"))
    57 hash.update(bytes('admin',encoding="utf-8"))
    58 print(hash.hexdigest())
    59 
    60 python内置还有一个 hmac 模块,它内部对我们创建 key 和 内容 进行进一步的处理然后再加密:
    61 
    62 
    63 
    64 import hmac
    65  
    66 h = hmac.new(bytes('898oaFs09f',encoding="utf-8"))
    67 h.update(bytes('admin',encoding="utf-8"))
    68 print(h.hexdigest())
  • 相关阅读:
    Django之 Choices参数、MVC和MTV模型、Ajax
    Django之聚合查询、分组查询、查询优化以及F、Q查询
    Django 之 模型层ORM操作
    Django关于视图层和模板层相关操作
    Django数据操作、ORM表设计、路由层
    Django三板斧,Django连接数据库
    前端--jQuery
    前端----BOM和DOM
    .zip.001 -- .zip.003解压缩
    HTTP Status Codes
  • 原文地址:https://www.cnblogs.com/abobo/p/8109225.html
Copyright © 2020-2023  润新知