Rest Api mit Secret key signieren. durch MD5 und RSA SHA256

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Frosto
User
Beiträge: 10
Registriert: Montag 3. Juni 2019, 09:45

Hallo.

Ich habe mir ein test api Account bei der lbank exchange zugelegt.
Leider kann ich damit nicht kommunizieren weil das signieren irgendwie nicht klappt.

Habe ich die Api Doc falsch verstanden?

https://github.com/LBank-exchange/lbank ... /README.md

Code: Alles auswählen

import hashlib
import hmac
import requests


ak = "4d4f1851-7d4c-4779-937f-6400a33bb023"
sk = b"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKFWL+JeqI9f2WMthdVpJEo13iTgLG1qbcocqPGbcAZjhR/VOr/ZfWVVzLwF2Vw9j0Ak/cvCRk1y0Mj+Wc6fRUqXcrv1A4wH01x9ZPHerCbtYtSgy7hriWTvoJB5f9IdelWLmHRW8L7bPnL66j+JKjrYA+bS0B10+LXk/nfkhm2hAgMBAAECgYEAmXgHwriydPgDLRGPnosOhz0onEFWYZp852ZN2s42SQ2AA+DsqrRzUOLGBxE1S0YPrz/A4INkJqYSLy+sNB1TZfJ15ygwRgafSoNh/tBkdchZAG1+G6wF1R8rATxEd+iqFDoLBXWorAUQ5VKmZQHmRLtAyEzRf6n9407nQA5mJ2UCQQDurYnUvb//UUn5RDEeYnjUUw5xJPegc1zLnUJ5SpEjqSw9v3IkwwwnJyzyuquoLpqhqt/3kTCc2bptHLaY75MLAkEArQu0f0YFoGd9oUklsbeOOGgx8gtU5Vg/ZrBS9dUOMvds+DkgSQa3hXurpM2DVCJ/vILwYzkwyqU/4vvhZIftgwJAfJa11gleycYDGU0RXs0EScE5TrJ/WJAfpmHmqy3TaYwLfggLa0ktdNqsSeBLbrU1HqL12mM9vwKgoAhXAKo+VQJAWw94ySzY0yMCmjf6zP1Rqt8xwTQzVYjNvET3MwQNt8Y6Ipk1IxiUxHpixZOcE08gNtwUkbJLuaeh6dkwL43T7wJBAJHoh8KO+6a+bncSc3OfX1tNtE+ML0yoARo7AfKtJycwATXNOPYErgdrrNEmbCAuWPCvHjujqRCw3x9UcE9MylI="

url = "https://api.lbkex.com/v1/user_info.do"

#secret_key in md5 umwandeln
skey = hashlib.md5(sk).hexdigest().upper()
b_skey = bytes(skey, "utf-8")


#den Querystring in md5 umwandeln
querystring = b"api_key=4d4f1851-7d4c-4779-937f-6400a33bb023"
h = hashlib.new("md5")
h.update (querystring)
sign1 = (h.hexdigest().upper())
b_sign1 = bytes(sign1, "utf-8")


#sign parameter erzeugen mit dem secret key und querystring zu rsa sha256
h2 = hmac.new(b_skey,  b_sign1,  hashlib.sha256).hexdigest().upper()

#Alles zusammenfügen
url_rdy = url + "?api_key=4d4f1851-7d4c-4779-937f-6400a33bb023&sign=" + h2

print (url_rdy)

r = requests.post(url=url_rdy)

print (r.text)

Sirius3
User
Beiträge: 18270
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich hoffe mal, das sind keine echten Keys. Da für das signieren kein Beispiel gegeben wird, ist es schwierig zu raten, was genau gemacht werden muss.
Anmerkungen zum Code:
Ein oder Zweibuchstabige Variablennamen sind schlecht. Benutze aussagekräftige Namen, keine Abkürzungen.
Der API-Key steht dreimal explizit im Code. Das solle maximal einmal sein.
Screibe Funktionen zum erzeugen der Parameterstrings, zum Signieren, usw.
Antworten