加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Python档案袋( Json、pickle、加密与解密)

发布时间:2021-05-21 07:05:45 所属栏目:大数据 来源: https://www.jb51.cc
导读:Json是各程序通用的数据格式;pickle是Python特有的,可以存储很多Python特有的数据,如函数地址等 Json 的简单使用: 1 import json 2 jsondata= { 3 " user " : dong " , 4 name dongxiaodong 5 age " :100 6 } 7 # 字典(json对象)转换为字符串 8 strjso

Json是各程序通用的数据格式;pickle是Python特有的,可以存储很多Python特有的数据,如函数地址等

Json的简单使用:

 1 import json
 2 jsondata={
 3     "user":dong", 4     namedongxiaodong 5     age":100
 6 }
 7 #字典(json对象)转换为字符串
 8 strjson=json.dumps(jsondata)
 9 print(type(strjson)) 输出:<class 'str'>
10 
11 字符串转换为json对象
12 dicjson=json.loads(strjson)
13 print(dicjson["]) 输出:100

Pickle

Pickle序列化:

 pickle
 2 
 3 def funx1(valuex):
 4     print(--------------- 5 
 6 jsondata= 7      8      9     ":10010     funx":funx1 保存函数地址,函数地址是以函数名确定的
12 
序列化,将字典转换为byte对象
14 bytejson=pickle.dumps(jsondata)
15 print(type(bytejson)) 输出:<class 'bytes'>
16 
17 保存到文件中
18 open(ww.txt",wb").write(bytejson)

Pickle反序列化:

 pickle

必须有序列化相同的函数名,只要函数名相同即可,参数任意
 funx1():
    **********)

strjson=open(rb).read()
字符串转换为json对象
dicjson=pickle.loads(strjson)

输出:100
dicjson["]() 调用函数,输出:**********

Shelve(对pickle的上层封装)

序列化

 shelve

打开文件
s=shelve.open(fileshelve)

建立列表数据
listx=[112233]

保存数据
s[listx"]=listx
s["]=
s["

关闭文件
s.close()

反序列化:

print(s.get(")) 输出:['11','22','33']
输出:dongxiaodong

关闭文件
s.close()

加密与解密:

Base64 可逆

 base64

加密
en=base64.b64encode(".encode(utf-8))
print(en.decode("))  输出字符串:ZG9uZ3hpYW9kb25n

解密
de=base64.b64decode(en).decode()
print(de) 输出字符串:dongxiaodong

md5 不可逆

 hashlib

方法一
mx=hashlib.md5() s生成md5对象

mx.update(b") 添加内容,拼接内容
mx.update(bdd 输出十六进制格式
print(mx.hexdigest()) 输出:f67d530272ebb0cf17ec7cdf2372b6cb


方法二
mx2=hashlib.md5(bdongxiaodongdd) 

print(mx2.hexdigest()) 输出:f67d530272ebb0cf17ec7cdf2372b6cb

Sha1 不可逆

 hashlib

s=hashlib.sha1()

s.update(bprint(s.hexdigest()) 输出:6a878a19687fc95d76f602d1580b54e0f0d2b88d

Hmac

键值对进行加密

 hmac

参数(键,值)
h=hmac.new(b如果存在中文,则需要使用encode
#h=hmac.new(b"dd","东小东dd".encode("utf-8"))

print(h.hexdigest())

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读