python json加密_使用python加密json数据

在工作的时候,配置给用户的json数据,经常会被一些喜欢研究,好奇心特别重的用户查看并修改。通常一定会改坏掉。然后大喊一声:"又打不开拉!!!!"

对这种事情我是深恶痛绝了。所以我决定要加密他,你看不懂了。就不会想着乱搞了。哼(骄傲)

Pickle序列化:import pickle

def funx1(valuex):

print("---------------",valuex)

jsondata={

"user":"lin",

"name":"lindayuan",

"age":100,

"funx":funx1 #保存函数地址,函数地址是以函数名确定的

}

#序列化,将字典转换为byte对象

bytejson=pickle.dumps(jsondata)

print(type(bytejson)) #输出:

#保存到文件中

open("ww.txt","wb").write(bytejson)

Pickle反序列化:import pickle

#必须有序列化相同的函数名,只要函数名相同即可,参数任意

def funx1():

print("**********")

strjson=open("ww.txt","rb").read()

#字符串转换为json对象

dicjson=pickle.loads(strjson)

print(dicjson["age"]) #输出:100

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

序列化(pickle的封装类)import shelve

#打开文件

s=shelve.open("fileshelve")

#建立列表数据

listx=["11","22","33"]

#保存数据

s["listx"]=listx

s["user"]="dongxiaodong"

s["name"]="dong"

#关闭文件

s.close()

反序列化:import shelve

#打开文件

s=shelve.open("fileshelve")

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

print(s.get("user")) #输出:dongxiaodong

#关闭文件

s.close()

加密与解密:

Base64 可逆import base64

#加密

en=base64.b64encode("dongxiaodong".encode("utf-8"))

print(en.decode("utf-8"))  #输出字符串:ZG9uZ3hpYW9kb25n

#解密

de=base64.b64decode(en).decode("utf-8")

print(de) #输出字*********aodong

md5 不可逆import hashlib

#方法一

mx=hashlib.md5() #s生成md5对象

mx.update(b"dongxiaodong") #添加内容,拼接内容

mx.update(b"dd")

# 输出十六进制格式

print(mx.hexdigest()) #输出:f67d530272ebb0cf17ec7cdf2372b6cb

#方法二

mx2=hashlib.md5(b"dongxiaodongdd")

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

Sha1 不可逆import hashlib

s=hashlib.sha1()

s.update(b"dongxiaodongdd")

print(s.hexdigest()) #输出:6a878a19687fc95d76f602d1580b54e0f0d2b88d

Hmac

键值对进行加密

import hmac

#参数(键,值)

h=hmac.new(b"dd",b"dongxiaodong")

#如果存在中文,则需要使用encode

#h=hmac.new(b"dd","东小东dd".encode("utf-8"))

print(h.hexdigest())

最后总结:

如果只是为了让一般用户看不懂,pickle就足够了

如果希望保护数据安全,使用base64

其他功能可以做参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值