Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Fire/SOUL/CD

    félisten

    válasz Zomb€€ #47532 üzenetére

    Gondolom ebben a jó időben nem a gép elutt ülsz, hanem kint vagy/vagytok a szabadban (amúgy jól teszed)
    Elolvastam a NodeJS doksit, megnéztem mi is ez a crypto.createHmac függvény ill. a "paramétereit" is megsasoltam, erre jutottam, remélem megfelel.

    1. Mindenképpen telepíteni kell a .NET Keretrendszer 3.5 változatát

    2. VBA Editorban (ALT+F11) Tools/References és a listában keresd meg és jelöld be a Microsoft XML, v6.0 és okézd le. [Microsoft XML, v6.0]

    3. Én most egy parancsgombot (CommandButton1) alkalmaztam és ennek a kattintási eseményéhez rendeltem a kód lefutását

    4. Munka1-be másolandó kód

    Private Sub CommandButton1_Click()

    Debug.Print HASHING_THE_STRINGG
    Debug.Print QUERY_STRING
    Debug.Print AND_RETURN
    Debug.Print Signature(QUERY_STRING, APISECRET)
    Debug.Print vbNewLine

    Debug.Print HASHING_THE_STRINGG
    Debug.Print ANOTHER_QUERY
    Debug.Print AND_RETURN
    Debug.Print Signature(ANOTHER_QUERY, APISECRET)

    End Sub

    5. Module1-be másolandó kód

    'Fire/SOUL/CD - 2021

    Option Explicit

    Public Const QUERY_STRING As String = "timestamp=1578963600000"
    Public Const ANOTHER_QUERY As String = "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559"
    Public Const APISECRET As String = "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
    Public Const HASHING_THE_STRINGG As String = "hashing the string: "
    Public Const AND_RETURN As String = "and return: "

    Public Function Signature(ByVal sTextToBeCoded As String, ByVal sKey As String)

    Dim EncodingType As Object
    Dim Encoder As Object
    Dim TextToBeCoded() As Byte
    Dim Key() As Byte
    Dim ByteArray() As Byte

    Set EncodingType = CreateObject("System.Text.UTF8Encoding")
    Set Encoder = CreateObject("System.Security.Cryptography.HMACSHA256")

    TextToBeCoded = EncodingType.Getbytes_4(sTextToBeCoded)
    Key = EncodingType.Getbytes_4(sKey)
    Encoder.Key = Key

    ByteArray = Encoder.ComputeHash_2((TextToBeCoded))
    Signature = EncodeBase64(ByteArray)

    Set EncodingType = Nothing
    Set Encoder = Nothing

    End Function

    Private Function EncodeBase64(ByRef DataArray() As Byte) As String

    Dim XMLObject As MSXML2.DOMDocument60
    Dim NODEObject As MSXML2.IXMLDOMElement

    Set XMLObject = New MSXML2.DOMDocument60

    Set NODEObject = XMLObject.createElement("b64")
    NODEObject.DataType = "bin.hex"
    NODEObject.nodeTypedValue = DataArray
    EncodeBase64 = NODEObject.Text

    Set NODEObject = Nothing
    Set XMLObject = Nothing

    End Function

    Mindez és a futtatás követő eredmény képen: [kép]
    (A kimenetet (Debug.Print) megjelenítő ablak (Immediate) a CTRL+G bill. kombóval jeleníthető meg)

    6. Természetesen Excel függvényként is használható a kód.

    Remélem ugyanazt az eredményt adja, mint a Node script... ;]

  • Fire/SOUL/CD

    félisten

    válasz Zomb€€ #47532 üzenetére

    Megtennéd, hogy a kimenetről (lefuttatod a scriptet) dobsz egy képet, mert úgy nem kellene a VBA kódban a titkosítási függvények számos paraméterével egyenként próbálkozni.
    Node doksit néztem, vélhetően elsőre is menne, de jobb ha a node script meg a vba kód is ugyanazt a kimenetet eredményezi...

Új hozzászólás Aktív témák