我的服务器要返回给请求我的客户端一段json字符串,服务器代码是用python实现的。格式如下:
{
“sign”: “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,
“name”: "王大锤”,
“age”: 14
}
其中sign是用openssl rsa 私钥签名”name=王大锤&age=14”后的结果。
在json.dumps的时候,就会报错,(我估计是将这个sign转化成unicode时候报错的,毕竟其本身并不是标准汉字字节码),
网上有一种写法是:sign.encode(‘utf-8’, ‘ignore')这样做成unicode。再去dumps
但是这样试了的结果是签名校验失败了,请问有什么好的解决办法?
sign.encode(‘utf-8’, ‘ignore')这里面ignore的意思是忽略异常的字符,也就是说签名中的非法字符会自动被过滤掉,导致签名失效。
@丁亚光 的方法应该是可行的,校验时再unhexlify回bytes校验。
sign先hexlify一下
binascii.hexlify(sign)