md5加密(API验签)

最近项目中涉及到验证码,订单,支付等功能,涉及到安全性的问题,这里是有个加密算法的下面一一列出~

这里简单说下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&timestamp=1501035945348
3)在字符串 A 的末尾加上 appSecret 的值组成一个新字符串
(这个appSecret得值也找后台要)
B=appKey=app1&b=23&f=1&k=33&timestamp=1501035945348secret0
4)对字符串 B 进行 md5 得到 sign 签名
sign=md5(appKey=app1&b=23&f=1&k=33&timestamp=1501035945348secret0 ) , 即:
576e38fa4cf1a8a33f2381c483bc448f
**注:**每次生成的md5签名都不一样
5)最终的请求地址为 :
https://xxxxx.com/api?appKey=app1&b=23&f=1&k=33&timestamp=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)  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值