💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
采用 HMAC-SHA256 算法,根据 secret_key 生产签名信息,通过校验签名进行鉴权。 - 签名所需参数 参数名 | 数据类型 | 描述 --- | --- | --- app_secret | string | 账号密钥 timestamp | int | 当前时间戳(精确到秒,10位) nonce_str | string | 随机字符串(由英文字母或数字组成,长度大于或等于8位) query | string | 发起 HTTP 请求 URL 中的查询字符串,即 URL 中问号(?)后面的字符串内容 body | string | 请求正文(payload,即 body,对于 GET/DELETE 请求,此值固定为空字符串) - 签名步骤 假设 ``` $app_secret = ca8K9a0fbLf2M6effL5f3M6J $timestamp = 1631696860 $nonce_str = 046J575b $query = page=1 $body = ``` 先对 `body` 以 `app_secret` 为key,做 SHA256 哈希,然后十六进制编码,最后编码串转换成小写字母 ``` // 伪代码 $body_hash = hash_hmac($body, $app_secret); // $body_hash = hash_hmac("", "ca8K9a0fbLf2M6effL5f3M6J"); // 即 $body_hash = "8ebd0495eef272cb47b1ba64745963f5d6e9b7846c7676dbffb1237b33830deb"; ``` 再对 `query` 以 `app_secret` 为key,做 SHA256 哈希,然后十六进制编码,最后编码串转换成小写字母 ``` // 伪代码 $query_hash = hash_hmac($query, $app_secret); // $query_hash = hash_hmac("page=1", "ca8K9a0fbLf2M6effL5f3M6J"); // 即 $query_hash = "1bd5303b65eda3009b5a65f79f979b0bb30be4848f552e723b53870af4fd75dd"; ``` 按以下顺序,拼接字符串 ``` // 伪代码 $origin_str = "app_secret=" + $app_secret + "\n" + "body=" + $body_hash" + "\n" + "nonce_str=" + $nonce_str" + "\n" + "query=" + $query_hash" + "\n" + "timestamp=" + $query_hash" // 即 $origin_str = "app_secret=ca8K9a0fbLf2M6effL5f3M6J\nbody=8ebd0495eef272cb47b1ba64745963f5d6e9b7846c7676dbffb1237b33830deb\nnonce_str=046J575b\nquery=1bd5303b65eda3009b5a65f79f979b0bb30be4848f552e723b53870af4fd75dd\ntimestamp=1631696860" ``` 然后对拼接的字符串,以 `app_secret` 为key,做 SHA256 哈希,然后十六进制编码,最后编码串转换成小写字母,得到签名 ``` // 伪代码 $signature = hash_hmac($origin_str, $app_secret); // 即 $signature = "0a2fee4c71360d8ac9fae5032644c1d2e5190a52d83a0eb80bf49e6679bc2269" ``` 对签名前面,拼接 `FP-SIGN-HMAC-SHA256 `,得出对应的 `Authorization` 值 ``` Authorization: FP-SIGN-HMAC-SHA256 0a2fee4c71360d8ac9fae5032644c1d2e5190a52d83a0eb80bf49e6679bc2269 ``` 最后,把以上信息放到请求的 Header ``` { "X-FP-NonceStr": "046J575b", "X-FP-Timestamp": "1631696860", "Authorization": "FP-SIGN-HMAC-SHA256 0a2fee4c71360d8ac9fae5032644c1d2e5190a52d83a0eb80bf49e6679bc2269" } ``` <p class="align-center"><a href="https://beian.miit.gov.cn" target="_blank">粤ICP备18096044号</a></p>