Вернуться   Биткоин Форум > Обслуживание Обсуждение
28 мая 2017, 2:29:06 AM   # 1
 
 
Сообщений: 15
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Bittrex API 1.1 вызовы с Excel

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуй,

Я пытаюсь получить Bittrex API 1.1, работающий в Excel, но по какой-то причине я не получить это право.

Там, кажется, что-то не так в них так, как я вычислить подпись.

Я получаю ошибку follwing:

Код:
{"успех":ложный,"сообщение":"INVALID_SIGNATURE","результат":ноль}

Это мой текущий Macro код:

Код:
Public Sub getopenorders ()

Dim apikey As String
Dim apisecret As String
Dim As String URI
Dim знак As String
Dim ответ As String
Dim PARAMS As String

«Для отладки
Ассортимент("B3") .Value = ""
Ассортимент("B4") .Value = ""
Ассортимент("B5") .Value = ""

apikey = "BITTREX API KEY"
apisecret = "BITTREX API SECRET"
= URI "https://bittrex.com/api/v1.1/market/getopenorders"
Титулы = "?" + "apikey =" + Apikey + "&= нонс" + getNonce
знак = createSignature (apisecret, Uri + PARAMS)
ответ = GetResponse (URI, "apisign", Знак, PARAMS)

Ассортимент("B3") .Value = ответ


End Sub

Функция GetResponse (ByVal PURL As String, sendVarKey As String, sendVarValue As String, Params As String) As String
    Dim oRequest Как WinHttp.WinHttpRequest
    Набор oRequest = GetHttpObj ("ПОСЛЕ", PURL + Титулы, False, sendVarKey, sendVarValue)
    oRequest.send ""
    GetResponse = oRequest.responseText
End Function


Public Function GetHttpObj (HTTPMethod As String, Ури As String, асинхронная As Boolean, _
    sendVarKey As String, sendVarValue As String, _
    Необязательные CONTENTTYPE As String = "Применение / JSON") Как WinHttp.WinHttpRequest
    Dim httpObj As New WinHttp.WinHttpRequest
    С httpObj
        .Открыть HTTPMethod, Урьте, асинхронные
        .setRequestHeader "происхождения", "pamsXL"
        .setRequestHeader "User-Agent", "Mozilla / 4.0 (совместимый; MSIE 6.0; Windows NT 5.1)"
        .setRequestHeader "соединение", "поддержания активности"
        .setRequestHeader "Тип содержимого", Тип содержимого
        .setRequestHeader "кэш-контроль", "нет кэша"
    End With

    Ассортимент("B4") .Value = URI
    Ассортимент("B5") .Value = sendVarValue
    httpObj.setRequestHeader sendVarKey, sendVarValue
    

    Установите GetHttpObj = httpObj
End Function


Private Function createSignature (KeyString As String, URL As String) As String
    createSignature = SHA512 (KeyString, URL)
End Function


Private Function sha512 (ByVal KeyString As String, ByVal ул As String) As String

    Dim закодировать As Object, шифровать As Object, с As String, _
        т () As Byte, б () As Byte, privateKeyBytes () As Byte
        
    Набор закодировать = CreateObject ("System.Text.UTF8Encoding")
    Набор шифровать = CreateObject ("System.Security.Cryptography.HMACSHA512")
    s = KeyString
    privateKeyBytes = decodeBase64 (ы)

    encrypt.Key = privateKeyBytes
    т = encode.Getbytes_4 (ул)
    б = encrypt.ComputeHash_2 ((т))
    
    s = tob64 (б)
    SHA512 = Заменить (с, vbLf, "")
    Устан закодировать = Ничто
    Устан шифровать = Ничто

End Function

Private Function tob64 (ByRef arrData () As Byte) As String

    Dim objXML Как MSXML2.DOMDocument60
    Dim objNode Как MSXML2.IXMLDOMElement

    Установить objXML = Новый MSXML2.DOMDocument60

    Набор objNode = objXML.createElement ("B64")
    objNode.DataType = "bin.base64"
    objNode.nodeTypedValue = arrData
    tob64 = objNode.Text

    не указан objNode = Nothing
    не указан objXML = Nothing

End Function

Private Function decodeBase64 (ByVal strData As String) As Byte ()
    Dim objXML Как MSXML2.DOMDocument60
    Dim objNode Как MSXML2.IXMLDOMElement
    
    Установить objXML = Новый MSXML2.DOMDocument60
    Набор objNode = objXML.createElement ("B64")
    objNode.DataType = "bin.base64"
    objNode.Text = strData
    decodeBase64 = objNode.nodeTypedValue
    
    не указан objNode = Nothing
    не указан objXML = Nothing
End Function


Функция getNonce () As String
    getNonce = CStr (DateDiff ("S", "1/1/1970", Теперь()))
End Function

Большое спасибо за вашу помощь.
JMan7777 сейчас офлайн Пожаловаться на JMan7777   Ответить с цитированием Мультицитирование сообщения от JMan7777 Быстрый ответ на сообщение JMan7777


Как заработать Биткоины?
Без вложений. Не майнинг.


14 июня 2017, 1:44:02 PM   # 2
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Bittrex API 1.1 вызовы с Excel

Получил 1806 Биткоинов
Реальная история.





Привет Jman,
Я не знаю, удалось ли вам, но у меня есть рабочий образец для Кракена, BTC-е и Poloniex в этом проекте: https://github.com/krijnsent/crypto_vba
Получение счета Bittrex и получить, что в этом проекте тоже в моем списке ToDo.
Ура,
Koen
rijnsent сейчас офлайн Пожаловаться на rijnsent   Ответить с цитированием Мультицитирование сообщения от rijnsent Быстрый ответ на сообщение rijnsent

8 октября 2017, 7:57:08 PM   # 3
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Bittrex API 1.1 вызовы с Excel

Привет Jman,
Я не знаю, удалось ли вам, но у меня есть рабочий образец для Кракена, BTC-е и Poloniex в этом проекте: https://github.com/krijnsent/crypto_vba
Получение счета Bittrex и получить, что в этом проекте тоже в моем списке ToDo.
Ура,
Koen

Привет, Я не компилировать код crypto_vba. Не могли бы вы мне помочь, пожалуйста?
Pudrim сейчас офлайн Пожаловаться на Pudrim   Ответить с цитированием Мультицитирование сообщения от Pudrim Быстрый ответ на сообщение Pudrim

25 октября 2017, 2:44:32 PM   # 4
 
 
Сообщений: 15
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Bittrex API 1.1 вызовы с Excel

Здравствуй,

Я получил это работает давно, но еще не так много использовать.

То, что я, наконец, был использован JSON конвертер для модуля VBA из (с) Tim Hall - https://github.com/VBA-tools/VBA-JSON
чтобы легко получить данные в формате JSON закачивается в ячейки Excel.

Моя первая проблема была с правильным подписанием запроса и построением запроса правильного HTTP.
После решения, что это было легко.

После импорта JSON конвертер для модуля VBA это мой макрос рабочий демонстрационный код для самого Excel.
Это сырой код без хорошего форматирования, и т.д., но это должно помочь вам.

Удачи.

FYI: Вы должны убедиться, что в Excel VBA Editor следующий инструмент ссылки включены:
- Microsoft Scripting время выполнения
- Microsoft WinHTTP Services, версия 5.1

Код:
Public Sub getopenorders ()

Dim apikey As String
Dim apisecret As String
Dim As String URI
Dim знак As String
Dim ответ As String
Dim PARAMS As String
Дим JSON As Object
Dim tempString As String
Dim Пункт Как словарь
Тусклый ключ As Variant
Dim C As Integer
Дим г As Integer
Dim с.в. As Integer

apikey = "ЭТО ВАШ BITTREX API KEY"
apisecret = "ЭТО ВАШ BITTREX API SECRET"

= URI "https://bittrex.com/api/v1.1/public/getmarketsummaries"

Титулы = "?" + "apikey =" + Apikey + "&= нонс" + getNonce
знак = createSignature (apisecret, Uri + PARAMS)
ответ = GetResponse (URI, "apisign", Знак, PARAMS)
tempString = Середина (ответ, InStr (ответ, "["), Len (ответ) - InStr (ответ, "["))
tempString = Заменить (tempString, ":ноль", ":""ноль""")

Набор = JsonConverter.ParseJson JSON (tempString)

г = 2
RV = 3
с = 1

Листы (1) .Cells.ClearContents

Для каждого элемента в формате JSON
     
    Для каждого ключа в Item.keys ()
        Листы (1) .Cells (г, с) = .value ключ
        Листы (1) .Cells (с.в., с) .value = Пункт (ключ)
        с = с + 1
    следующий
    RV = RV + 1
    с = 1
следующий

MsgBox ("Обновление от Bittrex сделано.")

End Sub


Функция GetResponse (ByVal PURL As String, sendVarKey As String, sendVarValue As String, Params As String) As String
    Dim oRequest Как WinHttp.WinHttpRequest
    Набор oRequest = GetHttpObj ("ПОСЛЕ", PURL + Титулы, False, sendVarKey, sendVarValue)
    oRequest.send ""
    GetResponse = oRequest.responseText
End Function


Public Function GetHttpObj (HTTPMethod As String, Ури As String, асинхронная As Boolean, _
    sendVarKey As String, sendVarValue As String, _
    Необязательные CONTENTTYPE As String = "Применение / JSON") Как WinHttp.WinHttpRequest
    Dim httpObj As New WinHttp.WinHttpRequest
    С httpObj
        .Открыть HTTPMethod, Урьте, асинхронные
        .setRequestHeader "происхождения", "pamsXL"
        .setRequestHeader "User-Agent", "Mozilla / 4.0 (совместимый; MSIE 6.0; Windows NT 5.1)"
        .setRequestHeader "соединение", "поддержания активности"
        .setRequestHeader "Тип содержимого", Тип содержимого
        .setRequestHeader "кэш-контроль", "нет кэша"
    End With
    httpObj.setRequestHeader sendVarKey, sendVarValue
    Установите GetHttpObj = httpObj
End Function


Private Function createSignature (KeyString As String, URL As String) As String
    createSignature = SHA512 (KeyString, URL)
End Function


Private Function sha512 (ByVal KeyString As String, ByVal ул As String) As String

    Dim закодировать As Object, шифровать As Object, с As String, _
        privateStringBytes () As Byte, б () As Byte, privateKeyBytes () As Byte
       
    Набор закодировать = CreateObject ("System.Text.UTF8Encoding")
    Набор шифровать = CreateObject ("System.Security.Cryptography.HMACSHA512")
   
    privateKeyBytes = encode.Getbytes_4 (KeyString)
    privateStringBytes = encode.Getbytes_4 (ул)
    encrypt.key = privateKeyBytes
   
    б = encrypt.ComputeHash_2 ((privateStringBytes))
    SHA512 = ByteArrayToHex (б)

    Устан закодировать = Ничто
    Устан шифровать = Ничто

End Function

Private Function ByteArrayToHex (ByRef ByteArray () As Byte) As String
    Dim л As Long, strRet, Val As String
    Для л = LBound (ByteArray) К UBound (ByteArray)
        Вал = Шестигранный $ (ByteArray, (л))
        Если Len (Val) <> 2 Тогда
             Val = "0" & Val
        End If
        strRet = strRet & Val
    Далее л
    ByteArrayToHex = LCase (strRet)
End Function

Функция getNonce () As String
    getNonce = CStr (DateDiff ("S", "1/1/1970", Теперь()))
End Function

JMan7777 сейчас офлайн Пожаловаться на JMan7777   Ответить с цитированием Мультицитирование сообщения от JMan7777 Быстрый ответ на сообщение JMan7777

17 ноября 2017, 5:48:37 PM   # 5
 
 
Сообщения: 1
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Bittrex API 1.1 вызовы с Excel

Эй Jman777, его волшебная кода.
Я использовал их для получения другого запроса также.
Но во время размещения Купить / продать / отменить заказ - его получает ошибку. perticulerly после получения ответа от сервера.
 в строках ниже,

tempString = Середина (ответ, InStr (ответ, "["), Len (ответ) - InStr (ответ, "["))
tempString = Заменить (tempString, ":ноль", ":""ноль""")

могли бы вы помочь мне, пожалуйста.

Coinyguys сейчас офлайн Пожаловаться на Coinyguys   Ответить с цитированием Мультицитирование сообщения от Coinyguys Быстрый ответ на сообщение Coinyguys

24 ноября 2017, 2:39:23 PM   # 6
 
 
Сообщений: 15
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Bittrex API 1.1 вызовы с Excel

Эй Coinyguys,

После:
Код:
ответ = GetResponse (URI, "apisign", Знак, PARAMS)
проверить первое, что в переменном отклик.

Следующие 2 строки добавляются только исправить / изменить réponse, чтобы иметь возможность быть проанализирован с JsonConverter.
Код:
tempString = Середина (ответ, InStr (ответ, "["), Len (ответ) - InStr (ответ, "["))
tempString = Заменить (tempString, ":ноль", ":""ноль""")

Я никогда не пытался разместить Покупка / Продажа / Отменить заказ.

Таким образом, я не знаю, как реакция таких запросов выглядит.

Лучше всего вы просто временно написать контекст переменных "ответ" а также "tempString" в 2 отдельных ячеек Excel
и тогда вы увидите, что я делаю, чтобы изменить ответ Bittrex для JsonConverter.

Тогда вы можете сравнить формат ответа Bittrex для нормального ПОЛУЧИТЬ * с купить / продать / Отмена заказов.

Надеюсь это поможет.

Удачи.
JMan7777 сейчас офлайн Пожаловаться на JMan7777   Ответить с цитированием Мультицитирование сообщения от JMan7777 Быстрый ответ на сообщение JMan7777



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW