红联Linux门户
Linux帮助

Input strings must be a multiple of 16 in length

发布时间:2015-12-20 10:20:28来源:linux网站作者:heybob

环境:ubuntu14.04  python


描述:

测试微信开放平台中公众号第三方平台的自动回复,在对xml加密时报错。加密用的是微信给的WXBizMsgCrypt,加密类型,为aes。

1,之前xml中text信息为英文时,没有报错,改成中文时报错。

我将xml的具体内容截取出来,直接调用WXBizMsgCrypt加密,报出新错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xf8 in position 19: invalid start byte

2,上一步中的xml的类型为unicode,我将之改成str类型,结果不报错

3,于是不管错误了,针对需要加密的xml对象,我这里是以response为例,将之转化为str类型:

response = response.encode("utf-8")

之后再加密,就不会报错了。


很明显,我这是有针对对象的,其他报错的我不知道是不是同样的方法也能解决,查了一会儿还是不了解加密的问题。

不过百度时资料很少,所以将我的经历写出来,给碰到同样问题的人提供个思路吧。


Linux命令之strings-打印文件中的可打印字符串:http://www.linuxdiyf.com/linux/7542.html

Linux的strings命令:http://www.linuxdiyf.com/linux/3290.html