zoukankan      html  css  js  c++  java
  • 模块讲解----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())
  • 相关阅读:
    Oracle存储过程格式
    Parallel并行运算实例
    唐让的领航少年
    株洲县阳光三农网
    株洲县招商网
    利用css新属性appearance优化select下拉框
    谈谈我的出差感想
    颜色表及html代码
    jquery中DOM的操作方法
    HTML DOM的nodeName,nodeValue,nodeType介绍
  • 原文地址:https://www.cnblogs.com/abobo/p/8109225.html
Copyright © 2011-2022 走看看