API通过签名鉴权

1、MD5方式

用户需要先在网站上申请key、secret,然后校验流程如下:

客户端:

1.参数排序

2.将参数串接起来加上secret,生成待摘要字符串

3.使用MD5等摘要算法生成摘要串signature

4.将key,signature放入header中一并传给服务器
服务器:

1.参数排序

2.将参数串接起来加上secret(通过header中的key在数据库获取),生成待摘要字符串

3.使用MD5等摘要算法生成摘要串

4.服务端生成的摘要串与客户端通过header传递过来的摘要串进行比较

2、HmacSHA256方式

用户需要先在网站上申请key、secret,然后校验流程如下:

客户单:

1.将请求参数封装成json字符串,也就是请求体body

2.使用HmacSHA256算法加secret对(请求url+nonce+body)加密生成摘要signature

3.将key,signature放入header中一并传给服务器

服务器:

1.获取请求中的请求体body字符串

2.使用HmacSHA256算法加secret(通过header中的key在数据库获取)对(请求url+nonce+body)加密生成摘要signature

3.服务端生成的摘要串与客户端通过header传递过来的摘要串进行比较

注意使用HmacSHA256更加安全,而且我们可以直接将请求参数封装成json字符串放入请求体中(也就是通过io流)进行传递。

你可能感兴趣的:(API通过签名鉴权)