在编写一个签名/验签的功能模块时,呈现一个状况,在本我的项目中签名验签测试失常,但在生产端解决时有时胜利,有时谬误。

生产端也是应用的通用明码库,所以排除底层库谬误的可能。

测试多个实例,并打印出具体参数。发现法则,只有一个参数为0时,就胜利,1时就失败。

减少生产端参数日志,对解决流程debug,并查看生产端的代码,发现一处可疑的类型转换,从byte转byte32,而后由byte32转uint8。对这部分代码专门测试,发现byte转byte32时,0x01变成了0x0100...,转成uint8时,变成了0,也就是主动取了后8位。