bytearray类型
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'))
bytearray类型的更多相关文章
- python string类型 bytes类型 bytearray类型
一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode的序列. ...
- 译文:二进制序列类型 --- bytes, bytearray
在进行一些内置函数调用时,会发现bytes类型的参数或返回值,这个类型老猿前面没有介绍过,在此就不单独介绍了,直接从Python官网的内容用翻译软件翻译过来稍微修改. 操作二进制数据的核心内置类型是 ...
- 关于bytes和bytearray
背景 平时工作因为有批量线上数据进行更新,通过Python程序连接数据库,利用连接池和gevent的并发性能,处理大量数据. 因为数据方提供的数据表结构中带有varbinary类型字段,并非全部,所以 ...
- python字符串类型
python中的字符串 python中的字符串类型为str,也是平时操作的类型.但除了str类型,还有一个专门的名为"string"的模块(导入即可知),是很早以前没有str类型的 ...
- python bytes和bytearray、编码和解码
str.bytes和bytearray简介 str是字符数据,bytes和bytearray是字节数据.它们都是序列,可以进行迭代遍历.str和bytes是不可变序列,bytearray是可变序列,可 ...
- Python函数-bytearray()
bytearray([source [, encoding [, errors]]]) bytearray([source [, encoding [, errors]]])返回一个byte数组.By ...
- 字符编码及字节串bytes类型
1 字符编码简介 ASCII码:美国人发明并使用,用1个字节(8位二进制)代表一个字符,ASCII码是其他任意编码表的子集(utf-16除外). Unicode:包含和兼容全世界的语言,与全世界的语言 ...
- Reed-Solomon码,QR
原文: Reed–Solomon codes for coders参考: AN2407.pdfWIKI: 里德-所罗门码实现:Pypi ReedSolo #译注:最近看到了RS码,发现还挺有意思的,找 ...
- 循序渐进Python3(三) -- 2 -- 内置函数
上一篇我们介绍了21个最常用到的函数,简单列一下,帮助回忆巩固: 1.abs 2.dict 3.float 4.help 5.input 6.int 7.len 8.list 9.max 10.min ...
随机推荐
- 解析iscroll-小demo
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- slam cartographer 学习
https://github.com/slam4code 感谢大牛的分享
- 深入Asyncio(九)异步生成器
Async Generators:yield inside async def functions 如果在async def中使用yield会发生什么,答案就是生成一个异步生成器函数,如果有生成器.协 ...
- os如何处理键盘的所有按键,显示or不显示,显示是如何显示
[0]README 0.1) source code and text decription are from orange's implemention of a os , and for comp ...
- urllib库python2和python3具体区别
Python 2 name Python 3 name urllib.urlretrieve() urllib.request.urlretrieve() urllib.urlcleanup() ...
- Python中文编码过程中遇到的一些问题
首先,要明确encode()和decode()的差别 encode()的作用是将Unicode编码的字符串转换为其它编码格式. 比如:st1.encode("utf-8") 这句 ...
- CAS实现单点登录理解
CAS 是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO ),CAS 开始于 2001 年, 并在 2004 年 12 月 ...
- 【BZOJ3291】Alice与能源计划 二分图最大匹配
[BZOJ3291]Alice与能源计划 Description 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验. 为了方便,我们可以将火星 ...
- net上传文件的三种方法
ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. Test.aspx关 ...
- CNN延拓至 复数域