2017-12-18 15 views
2

私は、暗号化交換であるcoinnest.co.krでPythonを使って取引APIにアクセスしようとしています。これを行うには、私がここで見つけるドキュメントに従う必要があります。https://www.coinnest.co.kr/doc/private.htmlAPI MD5を使用した署名がsha256の鍵になりました

を私たちは、公開鍵の鍵ペアを取得:空自-空自 - 空自 - 空自と秘密鍵:QWER-qewr-QWER-QWER。

リクエストパラメータは以下のとおりです。

"key":"asdf-asdf-asdf-asdf", 
"nonce":1505209177, 
"coin":"btc", 
"id":3 

そして、署名される文字列は次のようになります。

key=asdf-asdf-asdf-asdf&nonce=1505209278&coin=btc&id=3 

今、私たちはQWER-qewrのMD5ハッシュを使用します-qwer-qwerをキーとして使用し、上記の文字列をsha256で暗号化し、66b2935f3ba82a4a17074d439adab1043a63df4 a177af68fe76a3f4f350ef55d、署名として使用されます。

現在の問題は、例と同じ結果が得られないことです。彼らの例が正確であるかどうかは不明です。秘密鍵は「qwer-qewr-qwer-qwer」または「qwer-qwer-qwer-qwer」ですか?ナンスは「1505209177」か「1505209278」ですか?上記のコードを使用して

#!/usr/bin/python2.7 
import hashlib 
import hmac 

secret = 'qwer-qewr-qwer-qwer' 
message = 'key=asdf-asdf-asdf-asdf&nonce=1505209278&coin=btc&id=3' 
key = hashlib.md5(secret).hexdigest() 
print hmac.new(key, message, hashlib.sha256).hexdigest() 

、私は "66b2935f3ba82a4a17074d439adab1043a63df4a177af68fe76a3f4f350ef55d"

+1

私はさまざまな形の誤植を試して、さまざまな値を試してみました。***どれも***は "66b ..."です。 –

+0

それはそれらに尋ねる大きな質問です。秘密のMDSハッシュが何であるかは、セキュリティを追加していないため、何を求めているのでしょうか。 –

+0

ドキュメントに説明があるようです。 –

答えて

1

の期待される結果対"afdfb1c331670d95c93868948ff769719b28d879ac94589fa44c4d5b8eacab04"の署名を得るたぶん、あなたはAPIドキュメントをブルートフォースすることになっていますか?

に対応
>>> secret1 = 'qwer-qewr-qwer-qwer' 
>>> secret2 = 'qwer-qwer-qwer-qwer' 
>>> message_template = 'key=asdf-asdf-asdf-asdf&nonce={}&coin=btc&id=3' 
>>> target = '66b2935f3ba82a4a17074d439adab1043a63df4a177af68fe76a3f4f350ef55d' 
>>> keys = [hashlib.md5(secret1).hexdigest(), hashlib.md5(secret1).digest(), hashlib.md5(secret2).hexdigest(), hashlib.md5(secret2).digest()] 
>>> 
>>> for i in range(1505000000, 1506000000): 
...  msg = message_template.format(i) 
...  for key in keys: 
...    if hmac.new(key, msg, hashlib.sha256).hexdigest() == target: 
...      print 'FOUND hmac', key, msg 
...    if hashlib.sha256(key + msg).hexdigest() == target: 
...      print 'FOUND sha256', key, msg 
... 
FOUND hmac fecfe400baa3ae47fe8c42f9c087ec90 key=asdf-asdf-asdf-asdf&nonce=1505209413&coin=btc&id=3 

:だから次は動作するはず

>>> keys.index('fecfe400baa3ae47fe8c42f9c087ec90') 
0 

:あなたは正しいことをやっていたが、そのnonceが変化し、そしてqwer-qewr-qwer-qwer秘密鍵のよう

>>> hmac.new(hashlib.md5('qwer-qewr-qwer-qwer').hexdigest(), 'key=asdf-asdf-asdf-asdf&nonce=1505209413&coin=btc&id=3', hashlib.sha256).hexdigest() 
'66b2935f3ba82a4a17074d439adab1043a63df4a177af68fe76a3f4f350ef55d' 

が見えます正しい。

関連する問題