编码、解码、base64、MD5

前言

程序员对短信平台的使用接口进行了二次封装,在医院的项目中需要使用他们封装好的接口对接zabbix进行业务报警,在使用过程中使用python进行实现,
过程中使用了:
1.MD5
2.编码、解码知识
3.base64
在使用过程中,突然有点对知识有些认识不清楚了,特此根据自己理解记录了文档

一、字符集

字符集是"字符的集合",规定了这些集合中有哪些字符.每种字符集 存储字符所占用的字节数也不一样。
比如: GBK GB2312 unicode

二、字符编码

字符编码也就是平常我们指的"编码和解码"
字符编码是"一个过程",是把字符 按照某种 “字符集的存储规则” 转换成二进制的过程

三、实例

1.编码

对s字符串使用 GBK字符集格式 进行"字符编码"

s = "我喜欢python"
s1 = s.encode("GBK")
print(s1)

结果如下:
b'\xce\xd2\xcf\xb2\xbb\xb6python'

2.解码

成功的使用相同的字符集进行了解码

s = "我喜欢python"
s1 = s.encode("GBK")

s2 = s1.decode("GBK")
print(s2)


结果如下:
我喜欢python

四、hashlib

haselib是加密模块,支持摘要算法,散列算法等等。md5是常见的摘要算法

使用如下:

import hashlib

s = "我喜欢python"

#实例化一个对象
md5 = hashlib.md5()     
#对bytes类型的数据进行加密
md5.update(s.encode("utf-8"))
#得到加密后的字符串
value = md5.hexdigest()

print(value)
print(type(value))

结果如下:
得到一串字符串

f6805634813253a48571ec23014e2eb8

五、base64

Base64是一种用64个字符来表示任意二进制数据的方法。
它不是一种加解密技术,是一种简单的编解码技术.
这种编码技术不是对 字符进行编码,而是对二进制进行编码。
md5和base64都是对二进制进行加工

提醒:在python中,数据转成2进制后不是直接以010101的形式表示的,而是用一种叫bytes(字节)的类型来表示的.

import hashlib

s = "我喜欢python"
s1 = s.encode("gbk")

print(type(s1))

结果如下:
<class 'bytes'>

1.编码

使用base64对二进制进行编码

from base64 import b64decode,b64encode
import hashlib


s = "我喜欢python"
s1 = s.encode("gbk")

b = b64encode(s1)
print(b)
print(type(b))

结果如下:

b'ztLPsru2cHl0aG9u'
<class 'bytes'>

2.解码

s = "我喜欢python"
s1 = s.encode("gbk")

b = b64encode(s1)

print(b64decode(b).decode("gbk"))

结果如下:
我喜欢python

你可能感兴趣的:(python,python,开发语言)