1. 程式人生 > >Python學習心得(五) random生成驗證碼、MD5加密、pickle與json的序列化和反序列化

Python學習心得(五) random生成驗證碼、MD5加密、pickle與json的序列化和反序列化

用法 div com ict file imp randint csdn ==

# -*- 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學習心得(五) random生成驗證碼、MD5加密、pickle與json的序列化和反序列化