签名挑战(WebSocket API)

最近更新 2026年10月7日

订阅和取消订阅WebSocket私有频道的请求,须使用用户api_secret对挑战消息进行签名
,即使用用户api_secret签名的消息。

挑战的获取方式如WebSocket API公共部分所示(使用api_key)。

已认证的请求须同时以JSON格式包含原始挑战消息(original_challenge)和已签名挑战(signed_challenge)。

Challenge

挑战为UUID字符串。

示例:c100b894-1729-464d-ace1-52dbce11db42 


签名挑战的步骤与生成已认证REST请求的步骤相同。
第1步仅使用挑战字符串:

  1. 1

    用SHA-256算法对挑战做哈希

  2. 2

    对api_secret做Base64解码

  3. 3

    用第2步的结果,通过HMAC-SHA-512算法对第1步的结果做哈希

  4. 4

    对第3步的结果做Base64编码

第4步的结果即为已签名挑战,将包含在订阅请求中。

下表展示了示例输入的预期输出:

挑战

c100b894-1729-464d-ace1-52dbce11db42

api_secret

 7zxMEF5p/Z8l2p2U7Ghv6x14Af+Fx+92tPgUdVQ748FOIrEoT9bgT+bTRfXc5pz8na+hL/QdrCVG7bh9KpT0eMTm

已签名输出

4JEpF3ix66GA2B+ooK128Ift4XQVtc137N9yeg4Kqsn9PI0Kpzbysl9M1IeCEdjg0zl00wkVqcsnG4bm
nlMb3A==