2.4.2 HMAC-SHA256的sign签名算法示例:

  • 1.按参数名的字母顺序对参数的值进行顺序排序,signature不参与拼接。之后把参数值进行拼接得到字符串finalString。
  • 2.使用HMAC-SHA256算法哈希上步连接的字符串,散列上协商好的secret密钥。得到加密后的字符串。
  • 3.比对参数signature的值是否与上步字符串匹配。
  • 4.https://tool.oschina.net/encrypt?type=2 可通过此链接提供的util进行测试。
  • 5.请看以下示例:

请求参数:

{
    "uid":"1343444245255643138",
    "roleId":"1001200100001",
    "serverId":"0001",
    "giftCode":"100120giftcode",
    "cdkCode":"eLxksa5m2GP24nH95JSs3",
    "checkFlag":"0",
    "sandbox":"1",
    "signature":"b6befd6b3a3cfaf4aed1034ec13fad4d9c948dddcf5fb2868a06abe65a9faf54"
}

流程

  • 1.参数排序并拼接:

    "cdkCode":"eLxksa5m2GP24nH95JSs3",
    "checkFlag":"0",
    "giftCode":"100120giftcode",
    "roleId":"1001200100001",
    "sandbox":"1",
    "serverId":"0001",
    "uid":"1343444245255643138",
    
    • 拼接后的字符串:
    • eLxksa5m2GP24nH95JSs30100120giftcode10012000100001100011343444245255643138
eLxksa5m2GP24nH95JSs30100120giftcode1001200100001100011343444245255643138
  • 3.将finalString进行HMAC-SHA256算法哈希:

    b6befd6b3a3cfaf4aed1034ec13fad4d9c948dddcf5fb2868a06abe65a9faf54
    

    备注

  • 参数中,"signture"不参与finalString生成。
  • 某些参数的值有可能为null,此时仍然参与finalString生成,但以null为替代。

results matching ""

    No results matching ""