zoukankan      html  css  js  c++  java
  • Python学习心得(五) random生成验证码、MD5加密、pickle与json的序列化和反序列化

    # -*- coding:utf-8 -*-
    
    import random as rd #验证码
    import hashlib as hsl #MD5加密
    import pickle,json #pickle与json序列化
    
    #print rd.randint(1,5)
    
    #print help(range)
    #print help(rd.randint)
    
    #随机生成6位验证码:
    code = []
    for i in range(1,7):
        if i == rd.randint(1,6):
            code.append(str(i))
        else:
            code.append(chr(rd.randint(65,90)))
                
    print ''.join(code)    
    
    #MD5加密,不能反解,实际应用中验证用户是否登录时,可以md5()正解匹配
    hashtest = hsl.md5()
    hashtest.update('admin')
    print hashtest.hexdigest()
    
    #pickle序列化与反序列化  及和json的区别
    """
    pickle 与  json
    
    1.pickle是python专用的,json几乎所有的编程语言都支持json格式,不同语言间数据内存交互以json为主
    2.pickle和json在Python中的用法都是一样的,pickle基本上python中所有的数据类型都能序列化,json只能序列化常规的列表、字典等
    3.pickle序列化的数据默认不可读(人工无法分辨),但json序列化后可以直观看到(可读)
    
    """
    
    dict_pick = {'name':'binguo','age':27,'blogurl':'http://blog.csdn.net/binguo168'}
    dict_json = {'company':'china','hobby':'study'}
    
    #序列化
    result1 = pickle.dumps(dict_pick)
    result2 = json.dumps(dict_json)
    print result1
    print result2
    
    with open('E:/pickleresult.txt','w') as file_pickle:
        pickle.dump(dict_pick, file_pickle) #序列化到文件
    
    with file('E:/pickleresult.txt','r') as read_pickle:
        print pickle.load(read_pickle) #从文件反序列化回来
        
    #反序列化
    print pickle.loads(result1)
    print json.loads(result2)
    

      

  • 相关阅读:
    vue 定时器销毁的问题
    学习flutter,先学dart并安装dart sdk
    vue element-ui table 列表倒计时
    微信小程序使用symbol方式使用阿里图标库
    前端处理后台返回的图片控制台输出是乱码
    uniapp 扩展组件抽屉的使用
    C# 连接MYsql 报错Authentication plugin 'caching_sha2_password' cannot be loaded
    IE上传文件报错
    C#调用JavaHttp接口抛500内部错误
    easy ui 中grid级联操作
  • 原文地址:https://www.cnblogs.com/binguo2008/p/7242619.html
Copyright © 2011-2022 走看看