前言
程序员对短信平台的使用接口进行了二次封装,在医院的项目中需要使用他们封装好的接口对接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
<class 'str'>
五、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