在python3中

base64只能用bytes型了

而一般的文件又都是utf8写的 很不方便

不知道基于什么考虑

 

所以

tmp=base64.encodestring(‘hello’) 是会报错的

应该是

tmp=base64.encodebytes(b’hello’)

这个encodebytes和encodestring现在是同义词

可能为了兼容以前(这兼容什么啊 肯定不兼容了 就是让方法没消失罢了)

官方建议用bytes 因为逻辑上只能加密bytes数据嘛

 

解密是

base64.decodebytes(b’aGVsbG8=n’)

会再解成 b’hello’

 

另外要注意 加密出来的tmp也是bytes型的啦

要是想要给别人或别的程序

还要再转换成字符串

bytes.decode(tmp)

这样才又是普通的字符串了

 

不知道为啥官方不让两个string方法输入输出都统一成u8的字串

那多方便…