Python — шифрование base64 и hashlib, а также среда использования io.StringIO()

программист

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解码