python json加密_python----常用模块(hashlib加密,Base64,json)

一、hashlib模块

1.1 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。

加密需要先实例化MD5对象,再将字符串转成bytes类型(加密必须得是bytes类型,不能直接对字符串加密)进行加密,且md5是不可逆的!

m =hashlib.md5()#实例化md5对象

passwd ='ytt123456'

# passwd.encode()#把字符串转成bytes类型

#加密必须得是bytes类型

m.update(passwd.encode())#不能直接对字符串加密,要先把字符串转成bytes类型

print(m.hexdigest())

#md5是不可逆的

1.2 将加密写成一个函数如下:

def my_md5(str):

new_str = str.encode()#字符串转成bytes类型

#new_str = b'%s'%str##字符串转成bytes类型

m = hashlib.md5()#实例化md5对象

m.update(new_str)#加密

return m.hexdigest()#获取结果返回

二、Base64 是一种用64个字符来表示任意二进制数据的方法

import base64

s='hahaha'

byte_s = s.encode() #字符串变成二进制

res = base64.b64encode(byte_s) #base64编码

print(res.decode()) #把bytes转成字符串。

#打印结果:aGFoYWhh

jie_mi_res = base64.b64decode(res.decode()) #base64编码

print(jie_mi_res.decode())

#输出结果:hahaha

三、json模块

import json

#json串是一个字符串

f = open('product',encoding='utf-8')

res = f.read()

print(json.loads(res))#字符串变成字典

product_dic = json.loads(res)#把字符串,变成python的数据类型

print(type(product_dic))

print(product_dic.get('product_info'))

print(json.load(f))#传一个文件对象,它会帮你读文件

d = {

'zll':{

'addr':'北京',

'age':28

},

'ljj':{

'addr':'北京',

'age':38

}

}

fw = open('user_info.json','w',encoding='utf-8')

dic_json = json.dumps(d,ensure_ascii=False,indent=4)#字典转成json,字典转成字符串

#显示为中文 缩进4格

print(dic_json)

fw.write(dic_json)

json.dump(d,fw,ensure_ascii=False,indent=4)#操作文件,自动帮你写了

3.1 json文件小练习

import json

def op_data(filename,dic=None):

if dic:#字典不为空,写入

with open(filename,'w',encoding='utf-8') as fw:

json.dump(dic,fw,ensure_ascii=False,indent=4)#操作文件,自动帮你写了

else:

with open(filename,encoding='utf-8') as fr:

return json.load(fr)#传一个文件对象,它会帮你读文件

FILE_NAME = 'user_info.json'

all_users =op_data('user_info.json')

print(all_users)

for i in range(3):

choice = input('输入,1注册,2删除')

if choice =='':

username = input('username:')

pwd = input('pwd:')

if username not in all_users:

all_users[username] =pwd

op_data(FILE_NAME,all_users)

elif choice =='':

username =input('username:')

all_users.pop(username)

op_data(FILE_NAME,all_users)

python常用模块——hashlib模块

Python的hashlib提供了常见的摘要算法,如md5.sha1等 什么是摘要算法了?摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转化魏一个长度固定的数据串(通常用十六进制的 ...

python常用模块集合

python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...

Python常用模块之hashlib(加密)

Python常用模块之hashlib(加密) Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据import ha ...

Python常用模块-摘要算法(hashlib)

Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...

python常用模块之json、pickle模块

python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...

(转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...

Python常用模块——目录

Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...

Python常用模块小结

目录 Python常用模块小结 一.Python常用模块小结 1.1 time模块 1.2 datetime模块 1.3 random模块 1.4 os模块 1.5 sys模块 1.6 json模块 ...

python常用模块 以及第三方导入

python常用模块 1模块的分类 标准模块(内置模块)( 标准库 )300 第三方模块 18万 pip install 直接通过pip安装 软件一般会被自动安装你python安装目录的这个子目录里 ...

随机推荐

【BZOJ】1406: [AHOI2007]密码箱

http://www.lydsy.com/JudgeOnline/problem.php?id=1406 题意:求$0<=x

windows&plus;caffe&lpar;二&rpar;——图片转换为levedb格式

借鉴于langb2014的  http://blog.csdn.net/langb2014/article/details/50458520 与liukailun09的  http://blog.cs ...

Oracle必须死之奇怪的ORA-06502错误

作为熟练.Net码农以及非熟练Oracle用户很多时候Oracle总给我一种这货就是存心恶心我们的感觉. 虽然不得不承认Oracle是个很(an)好(gui)的产品,但是总有那么好几下被恶心到了.比如 ...

程序员是怎么炼成的---OC题集--练习答案与题目&lpar;3&rpar;

1.init 2.initWithBytes:length:encoding: 3.initWithCharacters:length: 4.initWithCString:encoding: 5.i ...

Regex&period;Replace的基本用法

Regex构造函数Regex(string pattern)Regex(string pattern,RegexOptions options)参数说明pattern:要匹配的正则表达式模式optio ...

Editplus中使用正则表达式压缩代码

快捷键ctrl+H打开查找与替换窗口,勾上使用正则表达式选项,查找项输入\t|^( )+,替换范围选当前文档,选择全部替换按钮,然后查找项在输入\n,再选择全部替换按钮. 大功告成!

Linux启动时间优化-内核和用户空间启动优化实践

关键词:initcall.bootgraph.py.bootchartd.pybootchart等. 启动时间的优化,分为两大部分,分别是内核部分和用户空间两大部分. 从内核timestamp 0.0 ...

Java并发编程:Java创建线程的三种方式

目录 引言 创建线程的三种方式 一.继承Thread类 二.实现Runnable接口 三.使用Callable和Future创建线程 三种方式的对比 引言 在日常开发工作中,多线程开发可以说是必备技能 ...

事物注解方式&colon; &commat;Transactional

当标于类前时, 标示类中所有方法都进行事物处理 , 例子: 1 @Transactional public class TestServiceBean implements TestService { ...

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值