一、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加密,Base64,json)的更多相关文章

  1. python常用模块——hashlib模块

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

  2. python常用模块集合

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

  3. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  4. Python常用模块之hashlib(加密)

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

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

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

  6. python常用模块之json、pickle模块

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

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

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

  8. Python常用模块——目录

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

  9. Python常用模块小结

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

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

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

随机推荐

  1. Oracle 数据库逻辑结构.md

    一.存储关系Oracle 数据库逻辑上是由一个或多个表空间组成的,表空间物理上是由一个或多个数据文件组成的:而在逻辑上表空间又是由一个或多个段组成的.在Oracle 数据库中,通过为每种不同的数据对象 ...

  2. java框架之SpringCloud(2)-Rest微服务案例

    在上一章节已经对微服务与 SpringCloud 做了介绍,为方便后面学习,下面以 Dept 部门模块为例做一个微服务通用 Demo —— Consumer 消费者(Client) 通过 REST 调 ...

  3. 【Java】NO.120.JDK.1.JDK8.1.001-【Java8实战】

    Style:Mac Series:Java Since:2018-09-26 End:2018-09-26 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  4. webpack 常用命令

    1 初始化package.json npm init -y 2 全局安装webpack npm install webpack -g 3 安装webpack依赖 npm install webpack ...

  5. Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4

    Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from https://repo.mave ...

  6. mysql的一些指令

    说起来mysql,mysql其实是特别简单操作的数据库.它有一下几方面的特点,亦或者是说优点,1,支持多语言:2.移植性比较好:3,我觉得最重要的一点就是它是开源的,因为开源,所以使用广泛,4.效率比 ...

  7. iOS项目之NSLog相关

    这算是在项目中最常用的命令了,方便程序员查看日志数据,便于程序调试.在开发中我们经常会进行一些设置,下面就来简单的说一说: 先来看看普通的NSLog: - (void)viewDidLoad { [s ...

  8. LeetCode #001# Two Sum(js描述)

    索引 思路1:暴力搜索 思路2:聪明一点的搜索 思路3:利用HashMap巧解 问题描述:https://leetcode.com/problems/two-sum/ 思路1:暴力搜索 一个很自然的想 ...

  9. Shiro权限管理框架

    一.Shiro介绍 Apache Shiro 是Java 的一个安全框架.Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境.Shiro 可以 ...

  10. D2欧拉路,拓扑排序,和差分约束

    第一题:太鼓达人:BZOJ3033 题意:给出k,求一个最长的M位01串,使其从每一个位置向后走k个得到 的M个k位01串互不相同(最后一个和第一个相邻,即是一个环).输出 字典序最小的答案. 2 ≤ ...