如何生成token值

Token 值是将请求源串以及 Secret 通过 MD5 算法生成的,用来提高传输过程参数的防篡改性。
token 值的生成共有 2 个步骤:构造源串,生成 token 值。

1. 构建源串

a.获取要请求 URI(统一资源标识符,即域名后面的地址串
示例:/openapi/service/vss/preview/getPreviewParamByCameraUuid);
b.将输入参数(系统参数和业务参数)生成 JSON 串;
c.将 a 中 URI 和 b 中得到的字符串和 secrect 拼接起来得到源串。

源串构造示例
如何生成token值_第1张图片

  1. 原始请求信息:
    screct:aa7aa8a8fa604c60866413f52563b70c
    HTTP 请求方式:POST
    请求的 URI 路径(不含 HOST):/openapi/service/vss/preview/getPreviewParamByCameraUuid
    请求参数:
{
     "appkey": "61fdb13b",
     "time": 1479364577369,
     "opUserUuid": "43a9a55f76474bde89ecabc1d6914a7f",
     "cameraUuid": "b785bcf358154a4594651b4b21ddd0af",
     "netZoneUuid": "11d0e493870d40f9b2589
}
  1. 构造源串
    a.获取要请求的 URI:/openapi/service/vss/preview/getPreviewParamByCameraUuid
    b.将输入参数(系统参数和业务参数)生成 JSON 串:{“appkey”:”24982ba6”,”time”:1479364577369,”opUserUuid”:”4
    3a9a55f76474bde89ecabc1d6914a7f”,”cameraUuid”:”b785bcf358154a4594651b4b21ddd0af”,”netZoneUuid”:”11d0e4938
    70d40f9b2589383cf73001f”}
    c.将前两步中得到的字符串和 secrect 拼接起来得到源串(请求 URI+参数串+secret):
“/openapi/service/vss/preview/getPreviewParamByCameraUuid{"appkey":"24982ba6","time":1479364577369,"opUserUuid":"43a9a55f76474bde89ecabc1d6914a7f","cameraUuid":"b785bcf358154a4594651b4b21ddd0af","netZoneUuid":"11d0e493870d40f9b2589383cf73001f"}aa7aa8a8fa604c60866413f52563b70c”

注:生成 token 的请求参数顺序与请求 URL 中的参数顺序保持一致

2. 生成 token 值

使用 MD5 算法对 1 中得到的源串进行运算,得到 token 值(大写):

MD5(/openapi/service/vss/preview/getPreviewParamByCameraUuid{"appkey":"24982ba6","time":1479364577369,"opUserUuid":"43a9a55f76474bde89ecabc1d6914a7f","cameraUuid":"b785bcf358154a4594651b4b21ddd0af","netZoneUuid":"11d0e493870d40f9b2589383cf73001f"}aa7aa8a8fa604c60866413f52563b70c)

token 值:5067D805D98456393A1C5DFE849B883B
注:每次请求都重新生成 token 值,token 值为 32 位长度的大写字

3、发起请求

将 token 参数和值拼接到 POST 请求 URL 后面

http://IP:PORT/openapi/service/base/user/getPreviewParamByCameraUuid?token=5067D805D98456393A1C5DFE84
9B883B

你可能感兴趣的:(java,token)