最近项目中涉及到验证码,订单,支付等功能,涉及到安全性的问题,这里是有个加密算法的下面一一列出~
这里简单说下api验签的方法
调用参数
1) 系统级参数

这个appKey找后台要
2) 应用级参数
API 调用除了必须包含公共参数外,如果 API 本身有业务级的参数也必须传入,每个 API 的业务级参数,请参考接口说明。
3) 签名sign生成
1.根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝 。
2.生成签名的步骤如下:
①将所有业务请求参数及系统参数,按字母先后顺序排序
②参数名称和参数值链接成一个字符串 A
③在字符串 A 的末尾加上 appSecret 组成一个新字符串 B
④对字符串 B 进行 md5,取 32 位小写,得到签名 sign
3.举例:
系统参数:appKey=app1,timestamp=1501035945348
请求的业务参数为:f=1,b=23,k=33
请求地址:https://xxxxx.com/api
签名生成如下:
1)排序后为:appKey=app1,b=23,f=1,k=33,timestamp=1501035945348
2)参数名称和参数值链接成一个字符串 A=appKey=app1&b=23&f=1&k=33×tamp=1501035945348
3)在字符串 A 的末尾加上 appSecret 的值组成一个新字符串
(这个appSecret得值也找后台要)
B=appKey=app1&b=23&f=1&k=33×tamp=1501035945348secret0
4)对字符串 B 进行 md5 得到 sign 签名
sign=md5(appKey=app1&b=23&f=1&k=33×tamp=1501035945348secret0 ) , 即:
576e38fa4cf1a8a33f2381c483bc448f
**注:**每次生成的md5签名都不一样
5)最终的请求地址为 :
https://xxxxx.com/api?appKey=app1&b=23&f=1&k=33×tamp=1501035945348&sign=576e38fa4cf1a8a33f2381c483bc448f
这里百度思路写了个md5可以拿出来直接用
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 1.1 Copyright (C) Paul Johnston 1999 - 2002.
* Code also contributed by Greg Holt
* See http://pajhome.org.uk/site/legal.html for details.
*/
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF)
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)

最低0.47元/天 解锁文章
9339

被折叠的 条评论
为什么被折叠?



