zoukankan      html  css  js  c++  java
  • configparser ,shelve ,hashlib,random模块

    configparser模块
    一句话概念:可以通过configparser将配置信息字典化的读写
    import configparser
    #生成一个这样的文档
    config = configparser.ConfigParser()        #生成一个对象
    config["DEFAULT"] = {'ServerAliveInterval': '45',
                          'Compression': 'yes',
                         'CompressionLevel': '9'}
    
    config['bitbucket.org'] = {'User': 'hg'}
    
    config['topsecret.server.com'] = {'Port': '50022',
                                      'ForwardX11' : 'no'}
    
    with open('example.ini', 'w') as f:
        config.write(f)
    

      

    
    
    #读取
    import configparser
    config = configparser.ConfigParser()        #定义一个对象
    
    config.read('example.ini')      #读取文件
    
    print(config.sections())      #显示除default之外的模块
    
    for key in config['bitbucket.org']: print(key)
    

      

    shelve模块

    一句话概念:shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

    写入
    import shelve
    
    d = shelve.open('shelve_test')   #打开一个文件
    
    def stu_data(name,age):
        print("register",name,age)
    
    name = ["alex","rain","test"]
    info = {"name":"alex","age":22}
    
    d["test"] = name
    d["info"] = info
    d['func'] = stu_data
    

      读取

    import shelve
    
    def stu_data(name,age):
        print("stu",name,age)
    
    d = shelve.open("shelev_test")
    print(d.get("test"))
    print(d.get("info"))
    print(d.get("func")("test",30))
    

      

    hashlib模块

    一句话概念:通过md等方式进行加密

    import hashlib      #md5算法,支持中文
    m = hashlib.md5()
    m.update(b"Hello")      #加密
    m.update("支持中文".encode("utf-8"))
    print(m)
    print(m.hexdigest())
    

      

    import hmac                 #hmac算法,双层加密
    h = hmac.new(b'wueiqi','your are 250'.encode("utf-8"))      #自定义key
    h.update(b'hellowo')        #加密
    print(h.hexdigest())
    

      

    random模块

    一句话概念:用来生成一个随机数

    常用语法
    print(random.random())          #区间就0-1
    print(random.uniform(1,10))     #指定区间
    print(random.randint(1,5))      #取整数
    print(random.randrange(1,10))  #不包含10
    print(random.choice('hello'))       #随机找一个值,也可以是列表,元祖
    print(random.sample('hello',2))     #就取前两位
    

      

    洗牌
    items = [1,2,3,4,5,6,7]
    print(items) #[1, 2, 3, 4, 5, 6, 7]
    random.shuffle(items)
    print(items) #[1, 4, 7, 2, 5, 3, 6]
    

      

    字母加数字的验证码
    print(string.digits)        #打印数字
    print(string.ascii_letters)     #打印字母
    str_source = string.ascii_letters + string.digits
    print(random.sample(str_source,7))
    

      

    生成一个验证码方法二
    checkcode = ''
    for i in range(4):
        current = random.randrange(0,4)
        if current != i:
            temp = chr(random.randint(65,90))
        else:
            temp = random.randint(0,9)
        checkcode += str(temp)
    print(checkcode)
    

      






  • 相关阅读:
    利用sqlmap进行mysql提权的小方法(win与liunx通用)
    冰蝎绕过阿里云盾和天眼监控的新方法
    关于渗透的小技巧整理
    入侵者已经拿到了主机的管理员权限,请你列举几种留后门的方法:(windows和LINUX系统均可)
    Mysql root账号general_log_file方法获取webshell
    tomcat put上传漏洞批量利用程序v1.1
    ios10.3.3快速越狱指南
    Android的虫洞漏洞挖掘方法研究
    【原创】TransHost远控程序分析
    【转载】微信数据库解密算法
  • 原文地址:https://www.cnblogs.com/fengdao/p/6080188.html
Copyright © 2011-2022 走看看