最近学习密码学,经常要在二进制位上操作,加完密以后又要把二进制串转化回去,还要中英文兼顾,就只好用’utf-8’了,'utf-8’转化为二进制串是很容易的事情,但是二进制串转回去就有点麻烦了,因为解码好像只能是bytes对象,不能是字符串,这里记录一个简单的方法
from bitarray import bitarray
bitarray对象可以轻松将二进制串转化为bitarray对象,然后bitarray对象可以轻松转化为bytes,之后就好办了
from bitarray import bitarray
def str2bitarray(s):
ret = bitarray(''.join([bin(int('1' + hex(c)[2:], 16))[3:] for c in s.encode('utf-8')]))
return ret
def bitarray2str(bit):
return bit.tobytes().decode('utf-8')