io.StringIO()
среда использования
В регистраторе, который записывает содержимое в файл, требуется отправить вывод журнала по сети.
1. Прочитайте файл и запишите его содержимое в сеть
2. Запишите журнал в объект StringIO (строковый буфер в памяти) и отправьте его в сетевое назначение, не касаясь файловой системы.
криптографический модуль для pythonhashlib
иbase64
hashlib
зашифровать кусок текста
import hashlib #引入hashlib模块
# md5等算法对象还提供了digest_size和block_size等属性,指示加密后文本的大小
hashlib.new("md5","Hello world!").digest()
Режим добавления
import hashlib #引入hashlib模块
mm = hashlib.md5() #创建一个md5对象
mm.update("Hello") #通过update方法加密文本
mm.update(" world!") #追加,这两句相当于 mm.update("Hello world!")
print mm.digest() #输出加密后的二进制数据
print mm.hexdigest() #输出加密后的十六进制数据
base64
коллекция методов
encode(),decode()
专门用来编码和解码文件的,也可以StringIO里的数据做编解码;将str字符转为byte
encodestring(),decodestring()
专门用来编码和解码字符串;
b64encode()和b64decode()
用来编码和解码通过byte转换后的字符串 ,并且有一个替换符号字符的功能;
urlsafe_b64encode()和urlsafe_b64decode()
这个就是用来专门对url进行base64编解码的。
import base64
obj = 'hello world!'
# 使原本的str类型变成byte
obj_byte_encode = 'hello world!'.encode()#默认以utf8编码
# 编码与解码的处理对象是byte,输出结果为byte
obj_byte_encode_enBase64 = base64.b64encode(obj_byte_encode)
# 将输出的byte对象解码为str对象
obj_str_enBase64 = obj_byte_encode_enBase64.decode()
print(obj_str_enBase64)#默认以utf8解码
# 将通过base64编码的对象解码
obj_byte_encode = base64.b64decode(obj_byte_encode_enBase64)
# 将输出的byte对象解码为str对象
obj = obj_byte_encode.decode()
print(obj)#默认以utf8解码