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)
    

      

  • 相关阅读:
    Python——String类型操作符
    NLTK——NLP流程
    NLTK——常用函数
    Java——IO流 对象的序列化和反序列化流ObjectOutputStream和ObjectInputStream
    java——什么是浅表副本
    JavaWeb——<c:forEach varStatus="status">
    kubernetes安装
    [转]Jmeter + Grafana + InfluxDB 性能测试监控
    html转markdown网站
    golang的包管理---vendor/dep等
  • 原文地址:https://www.cnblogs.com/binguo2008/p/7242619.html
Copyright © 2011-2022 走看看