API 签名认证

目录

一、什么是 API 签名认证?

二、为什么需要 API 签名认证?

三、如何实现 API 签名认证?

四、API 签名认证的六个参数

附:对称加密和非对称加密


一、什么是 API 签名认证?

1. 用于验证 API 请求的安全机制

2. 作用

  • 确保只有经过授权的用户或应用程序能访问 API
  • 防止未经授权的访问和数据篡改

二、为什么需要 API 签名认证?

1. 限制接口的调用者、调用次数

2. 提高 API 的安全性

三、如何实现 API 签名认证?

核心:签发签名和校验签名

  •  accessKey:调用的标识
  •  secretKey:密钥

1. 客户端准备请求:客户端构建API请求,并收集所有必要的参数,如请求方法、URL、时间戳、身份凭证等。

2. 参数排序:将请求参数按照一定的规则进行排序,通常是按参数名称的字母顺序进行排序。

3. 生成待签名字符串:将排序后的参数按照一定的格式拼接成一个待签名的字符串。

4. 添加密钥:将密钥(一般是客户端的私钥)加入待签名字符串中。

5. 计算签名:使用特定的加密算法(如HMAC-SHA1、HMAC-SHA256等)对待签名字符串进行加密,生成签名。

6. 发送请求:将生成的签名添加到API请求中的特定位置(如请求头或请求参数)。

7. 服务器端验证签名:服务器端收到请求后,会使用相同的算法和密钥对接收到的参数进行签名计算。然后将服务器端计算得到的签名与请求中的签名进行比对,如果一致,则验证通过;否则,验证失败。

1. 客户端在请求头中携带 accessKey 和 secretKey 发送请求给服务端

2. 服务端从请求头中取出参数进行校验

TODO 代码

四、API 签名认证的六个参数

1. 用户标识 accessKey

2. 密钥 secretKey:不传递给后端❗

3. 用户参数

4. 签名 sign

5. 随机数 防重放

6. 时间戳 timeStamp

TODO 代码

附:对称加密和非对称加密

你可能感兴趣的:(Java,LeAPI,-,后端,java,安全)