FreePascal: MD5

pefpasfd

Miten Freepascalin md5-funktiolla voidaan merkkijono muuttaa hashiksi? Olen yrittänyt kaikilla tavoin, mutta vain pukkaa erroria ja mikä toi TMD5Digest oikein on?

4

633

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Guillermo Pascal
    • Guillermo Pascal

      ..lukien sulla on puurot ja vellit sekaisin, hash tarkoitaa sekoittaa ei ole siis erillistä hash tilaa vaan vaan esim tässä tapauksessa md5 on se hash tila.

    • Delphiguru

      imuta netistä tämä:

      http://synapse.ararat.cz/files/synapse.zip

      Unit synacode:

      function MD5(const Value: AnsiString): AnsiString;

      Returns a binary string with a RSA-MD5 hashing of "Value" string.

      Tuo Synapse on kokoelma TCP/IP -toiminnallisuutta toteuttavia luokkia (siis EI komponentteja), mukana myös UDP, HTTP, FTP jne.

      Kyseinen MD5 toteutus ei sitten ole nopein mahdollinen, mutta jos ohjelmasi ei laske MD5 -summia gigatavujen kokoisista tietomääristä (esim. CD ja DVD -imaget) niin tuo ei välttämättä haittaa.

    • S85-58S

      TMD5Digest on tyyppi jossa säilytetään tuo MD5-tiiviste.

      Funktio MD5String muuntaa merkkijonon TMD5Digest-tyyppiseksi.
      Jos haluat sen merkkijonoksi niin funktio MD5Print taas muuntaa TMD5Digest-tyypin merkkijonoksi.
      (Kertaus: TMD5Digest on eräs tyyppi ja se on optimoitu MD5 käyttöön.
      Vertaa esim. tyyppiä Byte joka esittää kokonaislukuja väliltä 0..225
      tai TColor jossa on värejä esim. clRed )


      FreePascal:ssa ja Lazaruksessa MD5-tiivisteen käsittelyfunktiot ovat MD5 unit:ssa.
      Eli jos tätä haluaa käyttää niin niitä käyttävässä unit:n alussa olevassa uses-lauseessa oltava mainuttu myös md5.


      Voinet kokeilla vaikkapa tälläistä funktiota:

      function MjonoToHash( merkkijono: string ):string;
      var
      md5tavut:TMD5Digest;
      begin
      md5tavut := MD5String( merkkijono );
      result := MD5Print( md5tavut );
      end;


      Tuon saat toimimaan kokeilua varten Lazaruksessa (Delphi vatinee MD5 unit:n) .

      Luot Form:n jonne laitat Button, Edit ja Label-komponentit.
      Generoit Button:lle tapahtuman-käsittelijän jota täydennät
      seuraavasti:

      procedure TForm1.Button1Click( Sender: TObject );
      var
      s1, s2 : string;
      begin
      s1 := Edit1.text;
      s2 := MjonoToHash( s1 );
      Label1.Caption := s2;
      end;


      Muista vielä lisätä toi funktio ja uses-lauseeseen MD5.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Takaisin ylös

    Luetuimmat keskustelut

    1. Perintovero 100 prosenttiin, työeläkkeet ja maataloustuet pois

      Noilla eväillä lähden tasapainottamaan valtiontaloutta ja korjaamaan työntekijöiden palkkakuoppaa nostamatta työnantajie
      Maailman menoa
      320
      6272
    2. Riikka runnoo: polttoöljyn hinta nousi maaliskuussa 40 prosenttia

      Onko irvistelijällä sakset hävinneet, vai miksei osaa leikata polttoaineiden hintaa kansalaisten kukkarolle sopivalle ta
      Maailman menoa
      66
      4120
    3. Purra ryöväsi Marinin Itä.-Suomelle neuvottelemat EU-rahat

      Perust vihaavat suomalaisia, mutta eritoten itäsuomalaisia. "Osa kaksikäyttörahoista on alun perin Itä- ja Pohjois-Suom
      Maailman menoa
      41
      3485
    4. Miksi persut hyökkäävät jatkuvasti henkilöitä päin?

      Miksei persut yritä lainkaan korjata asioita, vaan koko ajan haukkuvat henkilöitä? Ei tuollaisilla turvanpieksäjillä ole
      Maailman menoa
      77
      3378
    5. Seida Sohrabi: Suomi ei ole rasistinen maa

      Seidalta taas täyttä asiaa. Miksi punavihreät naiset eivät pysty samaan - no se ideologia estää. "Meillä on valitettava
      Maailman menoa
      85
      3310
    6. Demariskandaali! Eveliina Heinäluoma (sdp) kahmii kaikki Hitas asunnot itselleen!

      Heinäluoma on ostanut useita yhteiskunnan tukemia, hintasäännösteltyjä asuntoja itselleen! Ei ihme, että Hitas on ollut
      Maailman menoa
      181
      3222
    7. Demarien sanoin kuvaamaton ahneus - Eveliina Heinäluoma vain yksi esimerkki

      Mutta näin se on demari-eliitissä aina ollut, käytännössä siis nämä eliittiin kuuluvat ovat puhtaasti porvareita - Marin
      Maailman menoa
      102
      2678
    8. Dannysta tulee isä 83-vuotiaana

      Huh huh sentään sellaista naista, joka laitattaa itsensä paksuksi ikälopulle papalle ! Ajatellaanko lapsen oikeuksia oll
      Maailman menoa
      57
      2484
    9. Abdullah iski Citycenterin vessassa

      Miksi näitä juttuja pitää lukea lähes päivittäin? https://www.hs.fi/helsinki/art-2000011913632.html
      Maailman menoa
      215
      2358
    10. Ranskan vasemmistojohtaja tunnustaa, että väestö on vaihtumassa

      ja se on vaan hyvä asia hänen mielestään. Kyseessä siis Ranskan vasemmistojohtaja Jean-Luc Mélenchon jonka puheet järkyt
      Maailman menoa
      78
      2113
    Aihe