美文网首页
腾讯接口签名遇到的坑

腾讯接口签名遇到的坑

作者: 风一样的存在 | 来源:发表于2019-05-14 14:14 被阅读0次

    由于要用到腾讯的弹性公网ip,调用腾讯的接口需要生成签名,但是官网只提供了PHP的样例。


    腾讯使用签名

    使用的方法1(发现生成的和官网的不一样):

    String secretKey = "pxPgRWDbCy86ZYyqBTDk7WmeRZSmPco0";
    String srcStr = "GETcdn.api.qcloud.com/v2/index.php?Action=DescribeCdnHosts&Nonce=13029&SecretId=AKIDT8G5AsY1D3MChWooNq1rFSw1fyBVCX9D&Timestamp=1463122059&limit=10&offset=0";
    String sign = Base64.encodeBase64String(new HmacUtils(HmacAlgorithms.HMAC_SHA_1, secretKey).hmacHex(srcStr).getBytes());     
    

    使用的方法2(生成的结果和方法1一致):

    String sign = java.util.Base64.getEncoder().encodeToString(HmacUtils.hmacSha1Hex(secretKey,srcStr).getBytes());
    

    使用的方法3(得到和官网一致的结果):

    Mac mac = Mac.getInstance("HmacSHA1");
    SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes("UTF-8"),"HmacSHA1");
    mac.init(keySpec);
    System.out.println(Base64.encodeBase64String(mac.doFinal(srcStr.getBytes())));
    

    参考:
    1.https://stackoverflow.com/questions/6312544/hmac-sha1-how-to-do-it-properly-in-java
    2.https://blog.csdn.net/zhuxiongyin/article/details/81101594
    3.https://faceid.com/faceid-open-doc/docs/sdkauth.html(FaceID使用的算法)
    4.https://github.com/TencentCloud/tencentcloud-sdk-java

    相关文章

      网友评论

          本文标题:腾讯接口签名遇到的坑

          本文链接:https://www.haomeiwen.com/subject/bdfsaqtx.html