请问下 js 里有没有实现数组按照 key 排序,数组转 url 格式化,MD5 加密的功能

2018-02-28 10:39:58 +08:00
 cnbattle

声明:下面是我写的接口的验证方法,下面加密方法为 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
	// ]
3912 次点击
所在节点    JavaScript
8 条回复
brickyang
2018-02-28 10:48:31 +08:00
`Array.prototype.sort()` https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

没看懂「数组转 url 格式」

MD5 的 JavaScript 实现 GitHub 上有一大把
murmur
2018-02-28 10:51:53 +08:00
google npm sort key
whypool
2018-02-28 10:53:15 +08:00
js 里面不是数组,是对象;
遍历对象的 key,按字典排序,然后拼接 url,就是 queryparams 参数形式的;
这种加密方法具体可以参考微信开发者文档,里面的 accesstoken 校验就是这样加密的
suzic
2018-02-28 11:18:15 +08:00
原生没有,要自己写
oott123
2018-02-28 11:56:49 +08:00
可以,但是没什么卵用。签名的算法和 key 都写在前端,别人随便就扒了,有啥意义呢?
geelaw
2018-02-28 12:19:17 +08:00
没看出来这个玩意儿怎么就是安全验证了……只是算出一坨大家都知道的东西罢了。
SakuraKuma
2018-02-28 12:25:10 +08:00
你不会想把算出来的 sign 在前端中给后端请求吧?.jpg
duan602728596
2018-02-28 12:48:19 +08:00
参数的话自己简单实现,md5 加密 npm 上拉个 md5.js

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433391

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX