zoukankan      html  css  js  c++  java
  • Python 学习之路

    反射

     1 import os
     2 mo = "common"
     3 # path = os.path.dirname(os.path.abspath(__file__))
     4 mod = __import__("other."+ mo,fromlist=True)#反射的方式导入一个模块,other.是模块的目录,mo是模块
     5 
     6 
     7 # setattr() 在某个模块设置某个功能
     8 # delattr() 在某个模块删除某个功能
     9 
    10 def fun():
    11     p = input("Please enter operate:")
    12 
    13     if hasattr(mod,p):# hasattr() 在某个模块中某个功能是否存在
    14         a = getattr(mod,p)# getattr() 在某个模块中得到某个功能
    15         a()
    16     else:
    17         print("404")
    18 
    19 
    20 if __name__ == '__main__':
    21     fun()

     

    hashlib

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

     1 import hashlib
     2  
     3 # ######## md5 ########
     4  
     5 hash = hashlib.md5()
     6 hash.update(b'admin')
     7 print(hash.hexdigest())#hexdigest 16进制
     8  
     9 # ######## sha1 ########
    10  
    11 hash = hashlib.sha1()
    12 hash.update(b'admin')
    13 print hash.hexdigest()
    14  
    15 # ######## sha256 ########
    16  
    17 hash = hashlib.sha256()#比md5安全
    18 hash.update(b'admin')
    19 print(hash.hexdigest())
    20  
    21  
    22 # ######## sha384 ########
    23  
    24 hash = hashlib.sha384()
    25 hash.update(b'admin')
    26 print(hash.hexdigest())
    27  
    28 # ######## sha512 ########
    29  
    30 hash = hashlib.sha512()
    31 hash.update(b'admin')
    32 print(hash.hexdigest())

    以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。

    1 import hashlib
    2  
    3 # ######## md5 ########
    4  
    5 hash = hashlib.md5(b'898oaFs09f')
    6 hash.update(b'admin')
    7 print(hash.hexdigest())

    python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密,常用于网络消息的加密传输。

    1 import hmac
    2 h = hmac.new(b'xxx')
    3 h.update(b'hellowo')
    4 print(h.hexdigest())
  • 相关阅读:
    【python-opencv】opencv基础操作之一
    【胎教】做AI的基础,开始学习。
    【实习】博士生找实习的囧事之其一
    【经验】CS
    【keras】用tensorboard监视CNN每一层的输出
    【算法】背包九讲
    【计算机网络】大数据 云计算 人工智能
    【算法】shortest distance
    【git】git hello world
    【算法】深度优先 马走日 Hamilton routes
  • 原文地址:https://www.cnblogs.com/peiling-wu/p/6545513.html
Copyright © 2011-2022 走看看