zoukankan      html  css  js  c++  java
  • Python的 json 、 hashlib 、 Base64 模块

    json模块

    简介

    全称"JavaScript Object Notation" (JavaScript对象表示法)它是一种基于文本,独立于语言的轻量级数据交换格式

    以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象(键值对)

    特点

    轻量级的文本数据交换格式

    易于人类阅读和编写,同时也易于机器解析和生成

    Web世界当中最理想的数据交换格式

    语法规则

    数据由键值对组成

    键值对由逗号分隔

    大括号里保存对象

    中括号里保存数组(Pyton中的的列表或元组)

    字符串必须用双引号

    API

    json.dumps(obj)           将python数据转化为json    indent 实现缩进,ensure_ascii 是否用ascii解析 

    json.loads(s)                将json数据转换为python的数据

    json.dump(obj, fp)       转换为json并保存到文件中

    json.load(fp)                从文件中读取json,并转化为python数据

    hashlib模块

    数据加密概念

    对称加密:数据加密解密使用相同的密钥

    非对称加密:加密和解密用两把不同的密钥,公钥用于加密数据,私钥用于解密数据

    单向加密:只能加密数据,而不能解密数据

    特点

    定长输出:无论输入的原始数据有多长,结果长度是相同的

    抗修改性:输入的微小改变,哪怕只有一个字符,也会引起结果的巨大改变

    强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能

    API

    主要使用md5        其它:sha系列、blake系列

    查询所有的哈希算法       hashlib.algorithms_guaranteed

    hashlib.new(算法名, data=b")   生成一个使用该算法的Hash对象,data为bytes类型

    hashlib.算法名(data=b")      生成一个使用该算法的Hash对象,data为bytes类型

    Hash对象.digest()        返回Hash算法计算得到的值(bytes类型)

    Hash对象.hexdigest()          返回Hash算法计算得到的值(str类型)

    Hash对象.update(arg=None)    更新Hash对象

    base64模块

    简介

    base64是一种用64个字符来表示任意二进制数据的方法(将二进制数据编码成ASCII字符)

    使用了A-Z、a-z、0-9、 + 、 / 这64个字符

    特点

    用来将非ASCII字符的数据转换成ASCII字符的一种方法

    常用于对URL的编码

    可以将不可打印的二进制数据转化为可打印的字符串

    API

    base64.b64encode(s)           对二进制数据进行base64编码

    base64.b64decode(s)           对通过base64编码的数据进行解码

    Base64编码后的数据可能会含有 + / 两个符号,如果编码后的数据用于URL或文件的系统路径中,就可能导致Bug,所以base模块提供了专门编码url的方法

    base64.urlsafe_ b64encode(s)        对URL进行base64编码

    base64.urlsafe_ b64decode(s)        对URL进行base64解码

  • 相关阅读:
    jinja模板语法
    flask处理cookie
    django模板语法
    django模型操作
    世间有一种坏
    单纯指望运动减肥的是几乎不可能的?
    主题
    slax自启动程序
    搞定TADA68机械键盘的固件修改
    ubuntu中编译安装gcc 9.2.0
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11788091.html
Copyright © 2011-2022 走看看