V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
cnbattle
V2EX  ›  JavaScript

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

  •  
  •   cnbattle · 2018-02-28 10:39:58 +08:00 · 4001 次点击
    这是一个创建于 2469 天前的主题,其中的信息可能已经有所发展或是发生改变。

    声明:下面是我写的接口的验证方法,下面加密方法为 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
    	// ]
    
    brickyang
        1
    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
        2
    murmur  
       2018-02-28 10:51:53 +08:00
    google npm sort key
    whypool
        3
    whypool  
       2018-02-28 10:53:15 +08:00
    js 里面不是数组,是对象;
    遍历对象的 key,按字典排序,然后拼接 url,就是 queryparams 参数形式的;
    这种加密方法具体可以参考微信开发者文档,里面的 accesstoken 校验就是这样加密的
    suzic
        4
    suzic  
       2018-02-28 11:18:15 +08:00
    原生没有,要自己写
    oott123
        5
    oott123  
       2018-02-28 11:56:49 +08:00 via Android
    可以,但是没什么卵用。签名的算法和 key 都写在前端,别人随便就扒了,有啥意义呢?
    geelaw
        6
    geelaw  
       2018-02-28 12:19:17 +08:00 via iPhone
    没看出来这个玩意儿怎么就是安全验证了……只是算出一坨大家都知道的东西罢了。
    SakuraKuma
        7
    SakuraKuma  
       2018-02-28 12:25:10 +08:00
    你不会想把算出来的 sign 在前端中给后端请求吧?.jpg
    duan602728596
        8
    duan602728596  
       2018-02-28 12:48:19 +08:00 via iPhone
    参数的话自己简单实现,md5 加密 npm 上拉个 md5.js
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5580 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 08:17 · PVG 16:17 · LAX 00:17 · JFK 03:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.