bytearray类型是python中的二进制数组类型,返回一个字节数组。
byte=bytearray(str,encoding,error)
str:待转化的字符串,若该值为字符串,则encoding参数必须存在(为utf-8,gbk,Latin-1等编码格式);若为b'xxx',则encoding参数不需要
特点:
1.该类型可以通过for..in...进行遍历,遍历的结果是0~255之间的值(表示字符编码的二进制值或字母数字的ASCII值)
2.由于是数组,可以通过取值符号[]取值或更改。
3.主要用于对str进行计算
以下例子是对id进行加密计算
import hashlib
import base64
def encrypted_id(id):
magic = bytearray('3go8&$8*3*3h0k(2)2', 'utf-8')#转化成bytearray字节数组
song_id = bytearray(id, 'utf-8')
magic_len = len(magic)
for i, sid in enumerate(song_id):
song_id[i] = sid ^ magic[i % magic_len]#对元素进行异或计算,返回值赋值给song_id
m = hashlib.md5(song_id)
result = m.digest()#对新的song_id进行加密,并返回二进制格式
result = base64.b64encode(result)#进行base64编码
result = result.replace(b'/', b'_')
result = result.replace(b'+', b'-')
return result.decode('utf-8')#替换并解码
print(encrypted_id('abc'))