接口验证有两种,一种是基于人的验证,比如需要调用者提供人员信息.第二种则是基于接口本身.接口本身的验证是因为很多调用者并不是一个人,可能仅仅是一个定时启动的脚本,无法采用用户名密码的形式来进行验证.
接口本身的验证基本方法就是在调用的时候在请求后方添加一个密钥,作为验证身份的令牌.
# 基于简单密码
双方约定密码,密码正确验证通过
# 参数签名方式
步骤通常如下:
①接口提供方给出appid和appsecret
②调用方根据appid和appsecret以及请求参数,按照一定算法生成签名sign
③接口提供方验证签名
生成签名的步骤如下:
①将所有业务请求参数按字母先后顺序排序
②参数名称和参数值链接成一个字符串A
③在字符串A的首尾加上appsecret组成一个新字符串B
④对字符串进行md5得到签名sign
假设请求的参数为:f=1,b=23,k=33,排序后为b=23,f=1,k=33,参数名和参数值链接后为b23f1k33,首尾加上appsecret后md5:md5(secretkey1value1key2value2...secret)。
# 带有时间戳的参数签名
普通的参数签名如果被监听就可以一直调用,那么可以在签名的生成过程中增加一个时间戳.
# Time-based One-time Password Algorithm(基于时间的一次性密码算法)
OTP是基于时间的一次性算法,客户端和服务器端约定秘钥,加入时间作为运算因子得到一个6位数字。客户端请求服务端时生成一个6位数字,服务端使用相同算法验证这个6位数字是否合法。
适用于小型的普通加密..
接口本身的验证基本方法就是在调用的时候在请求后方添加一个密钥,作为验证身份的令牌.
# 基于简单密码
双方约定密码,密码正确验证通过
# 参数签名方式
步骤通常如下:
①接口提供方给出appid和appsecret
②调用方根据appid和appsecret以及请求参数,按照一定算法生成签名sign
③接口提供方验证签名
生成签名的步骤如下:
①将所有业务请求参数按字母先后顺序排序
②参数名称和参数值链接成一个字符串A
③在字符串A的首尾加上appsecret组成一个新字符串B
④对字符串进行md5得到签名sign
假设请求的参数为:f=1,b=23,k=33,排序后为b=23,f=1,k=33,参数名和参数值链接后为b23f1k33,首尾加上appsecret后md5:md5(secretkey1value1key2value2...secret)。
# 带有时间戳的参数签名
普通的参数签名如果被监听就可以一直调用,那么可以在签名的生成过程中增加一个时间戳.
# Time-based One-time Password Algorithm(基于时间的一次性密码算法)
OTP是基于时间的一次性算法,客户端和服务器端约定秘钥,加入时间作为运算因子得到一个6位数字。客户端请求服务端时生成一个6位数字,服务端使用相同算法验证这个6位数字是否合法。
适用于小型的普通加密..