美文网首页
md5签名验证错误, 不同平台签名不同

md5签名验证错误, 不同平台签名不同

作者: 沫晚霞光 | 来源:发表于2020-01-16 16:45 被阅读0次

0. 问题描述

位置: 用户登录接口
描述: 通过模拟器将登录参数传给服务器, 客户端(模拟器)计算出来的签名与服务器计算出来的签名相同; 而通过手机, 客户端与服务器计算出来的签名不同.
现象就是: 模拟器登录, 签名验证成功, 手机登录, 签名验证失败

1. 问题原因

在登录参数中, 有一个参数的值在计算md5签名前使用了encodeurl方法.
这个导致了:
(1)通过模拟器传递参数, 对于字符串中的"+", "/"等之类的特殊符号, 传递给服务器后, 服务器收到后结果为替换后的符号(仍为encodeurl后的结果)
(2)通过手机传递参数, 那些特殊符号, 传递给服务器后, 服务器收到后结果为特殊符号(encodeurl之后重新解析的结果, 即原来的值)

2. 解决办法

对于可能含有特殊符号的参数值, 进行签名时用原来的值, 签名之后, 对于可能含有特殊符号的参数值, 根据平台判断是否使用encodeurl方法(若为android手机, 使用encodeurl方法; 其他不使用)

3. 感慨

这个问题也折腾了半天, 算是进步了.
终于知道项目登录接口代码里, 有的参数值是在签名之后根据平台决定是否使用encodeurl. 就是防止上面指出的这个问题.

相关文章

网友评论

      本文标题:md5签名验证错误, 不同平台签名不同

      本文链接:https://www.haomeiwen.com/subject/wenfzctx.html