Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Visual C++] - Generator haseł MySQL

hajcik 23 Lip 2014 13:39 1263 10
  • #1 23 Lip 2014 13:39
    hajcik
    Poziom 8  

    Cześć.
    Dopiero zaczynam poważniejsza przygodę z Visual C++, przeszukałem wiele stron, ale odpowiedzi mnie satysfakcjonującej - nie znalazłem.
    Z tego właśnie powodu - piszę tutaj.
    Potrzebuję zrobić generator haseł MySQL oparty o podwójne hashowanie SHA-1.

    O ile potrafię to napisać w PHP, o tyle zaimplementować tego do VC++ już nie potrafię.
    W PHP wygląda to tak(pomijając inputy, buttony itp - po prostu czysta, prosta funkcja):

    Kod: php
    Zaloguj się, aby zobaczyć kod


    Ma to być aplikacja okienkowa, tzn - Hasło do wygenerowania podaję w textBox1, po wciśnięciu button1 hasło ma zostać wygenerowane i wyświetlone w textBox2.

    0 10
  • #3 23 Lip 2014 19:10
    hajcik
    Poziom 8  

    No to faktycznie, ta Twoja odpowiedź mi bardzo pomogła...

    0
  • #5 23 Lip 2014 19:37
    hajcik
    Poziom 8  

    Międzyczasie znalazłem coś na własną rękę, jednak po dodaniu tego kodu do programu dostaję takie błędy:

    Code:
    1>aaa.obj : error LNK2028: unresolved token (0A00001B) "public: __clrcall sha1wrapper::sha1wrapper(void)" (??0sha1wrapper@@$$FQAM@XZ) referenced in function "private: void __clrcall aaa::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@aaa@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
    
    1>aaa.obj : error LNK2019: unresolved external symbol "public: __clrcall sha1wrapper::sha1wrapper(void)" (??0sha1wrapper@@$$FQAM@XZ) referenced in function "private: void __clrcall aaa::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@aaa@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
    1>C:\Users\7\documents\visual studio 2010\Projects\aaa\Release\aaa.exe : fatal error LNK1120: 2 unresolved externals


    Identycznie jest po zaimplementowaniu kodu od @witoldwitoldowicz

    0
  • #6 23 Lip 2014 19:44
    witoldwitoldowicz
    Poziom 28  

    Dodales plik c/cpp do projektu czy tylko dales include? Wrzuc caly projekt.

    0
  • #7 23 Lip 2014 20:41
    hajcik
    Poziom 8  

    Ok, poradziłem sobie z dodaniem tego smallsha1 do projektu.
    Jak tego mam teraz użyć, żeby zahashować wartość z textBox1->Text i wyświetlić w textBox2->Text ?

    0
  • #8 23 Lip 2014 20:53
    witoldwitoldowicz
    Poziom 28  

    sha1::calc(Textbox1->text.c_str(),textbox1->text.Length(),hash);
    Textbox2->text=
    hexstring;
    na stronie masz przyklad.

    0
  • #9 24 Lip 2014 00:01
    hajcik
    Poziom 8  

    Ok, miałem pewien problem, ale sobie z nim poradziłem.
    Kod na chwilę obecną wyglada tak:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Niestety wygenerowany hash nie zgadza się z tym, czego oczekuję(opisane jest to w kodzie PHP w pierwszym poście).
    Co teraz mam zrobić, by otrzymać taki sam output?

    0
  • Pomocny post
    #10 24 Lip 2014 05:57
    witoldwitoldowicz
    Poziom 28  

    Musisz hasha jeszcze zahashowac.
    sha1::calc(zawartosc,strlen(zawartosc),hash);
    unsigned char hash2[20];
    sha1::calc(hash,20,hash2);
    sha1::toHexString(hash2, hexstring);

    Ps.Sory pomylilem z CBuilder.

    0
  • #11 24 Lip 2014 20:28
    hajcik
    Poziom 8  

    Dziękuję bardzo za pomoc, chcąc zrealizować pełną funkcjonalność programu, napotkałem po drodze kilka mniejszych problemów, które udało mi się rozwiązać już samemu.
    Wszystko działa tak, jak tego oczekiwałem.
    Życzę miłego dnia.

    0