
声明:下面是我写的接口的验证方法,下面加密方法为 php 代码,来帮前端同事问的,js 是否实现?能实现的话,我就开始怼前端了
/** * 获取安全验证 sign * @param $postData post 数据 * @return array */ public function getVerifySign($postData){ ksort($postData); $str = http_build_query($postData); $timestamp = time(); $sign = md5('demo'.$str.$timestamp); return ['sign'=>$sign,'timestamp'=>$timestamp]; } 演示
// 初始 post 数据 $postData = [ 'name' => '拉拉阿里', 'tag' => 'test', 'description' => '拉拉阿里啦啦啦阿拉~' ]; $signArr = $this->getVerifySign($postData); // 最终 post 数据 $endArr = array_merge($postData,$signArr); // endArr // array:5 [ // "name" => "拉拉阿里" // "tag" => "test" // "description" => "拉拉阿里啦啦啦阿拉~" // "sign" => "ed402b09fa6e6e061491535fc351727d" // "timestamp" => 1516158324 // ] 1 brickyang 2018 年 2 月 28 日 `Array.prototype.sort()` https://developer.mozilla.org/en-US/docs/Web/Javascript/Reference/Global_Objects/Array/sort 没看懂「数组转 url 格式」 MD5 的 Javascript 实现 GitHub 上有一大把 |
2 murmur 2018 年 2 月 28 日 google npm sort key |
3 whypool 2018 年 2 月 28 日 js 里面不是数组,是对象; 遍历对象的 key,按字典排序,然后拼接 url,就是 queryparams 参数形式的; 这种加密方法具体可以参考微信开发者文档,里面的 accesstoken 校验就是这样加密的 |
4 suzic 2018 年 2 月 28 日 原生没有,要自己写 |
5 oott123 2018 年 2 月 28 日 via Android 可以,但是没什么卵用。签名的算法和 key 都写在前端,别人随便就扒了,有啥意义呢? |
6 geelaw 2018 年 2 月 28 日 via iPhone 没看出来这个玩意儿怎么就是安全验证了……只是算出一坨大家都知道的东西罢了。 |
7 SakuraKuma 2018 年 2 月 28 日 你不会想把算出来的 sign 在前端中给后端请求吧?.jpg |
8 duan602728596 2018 年 2 月 28 日 via iPhone 参数的话自己简单实现,md5 加密 npm 上拉个 md5.js |