python中的hash_hmac sha512身份验证

 猫心晴空5_826 发布于 2023-01-01 12:27

我正在尝试编写python身份验证机器人:https://comkort.com/page/private_api

没有完整的PHP示例.我猜有人可以把它放在这里.

只有片段的PHP代码:

$query_string = http_build_query($_POST, '', '&');
$ethalon_sign = hash_hmac("sha512", $query_string, $api_secret_key);

如何使用hash_hmac sha512在python上编写身份验证?

我想提取我的open orders POST https://api.comkort.com/v1/private/order/list.

我目前的变种是:

import hashlib
import hmac
import requests
import time

privateKey = b'myprivatekey'
publicKey = 'my public key'

url = 'https://api.comkort.com/v1/private/order/list'
tosign = b'market_alias=doge_ltc'
signing = hmac.new( privateKey , tosign, hashlib.sha512 )
headers = {'sign': signing.digest(), "apikey": publicKey, "nonce": int( time.time() ) }

r = requests.get(url, headers=headers)
print r.text

我抓住了这个

{"code":401,"error":"Invalid sign","field":"sign"}

可能是hexdigest()而不是digest()?我不知道,我正在玩这个b前缀和不同的输出hmac的选项,每次我遇到一个错误:"无效的标志".

相关:HMAC在Python中签名请求

1 个回答
  • 如果有人有意思,我自己解决这个问题.

    #!/usr/bin/python
    
    import hashlib
    import hmac
    import requests
    import time
    
    apikey = '';
    apisecret = '';
    
    def request_comkort( url, payload ):
            tosign = "&".join( [i + '=' + payload[i] for i in payload] )
            sign = hmac.new( apisecret, tosign , hashlib.sha512);
            headers = {'sign': sign.hexdigest(), 'nonce': int( time.time() ), 'apikey': apikey }
            r = requests.post(url, data=payload, headers=headers)
            return r.text
    
    # Get balance
    print request_comkort( "https://api.comkort.com/v1/private/user/balance";, {} )
    # Get Open Orders 
    print request_comkort( "https://api.comkort.com/v1/private/order/list";, {'market_alias': "DOGE_LTC" } )
    # Make Ask
    print request_comkort( "https://api.comkort.com/v1/private/order/sell";, { 'market_alias':"HTML_DOGE", "amount": "1000", "price": "123123" } )
    # Cancel order
    print request_comkort( "https://api.comkort.com/v1/private/order/cancel";, { 'order_id': 10943 } )
    

    2023-01-01 12:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有