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

763

    Vastaukset 4

    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ä.

    Luetuimmat keskustelut

    1. Olivia Oras kuollut

      Taidepariskunta Reijo Oraksen ja Johanna Oraksen ihana päivänsade. Liian nuorena lähti. Osanotto läheisille 🥲 IS
      Kotimaiset julkkisjuorut
      57
      1870
    2. Kajaanissa on kadoksissa 27vuotias nainen.

      Poliisin tiedoteessa on ,että 1.9.2026 katosi kajaanissa 27vuotias nainen. Kuva löytyy ja tiedot pituudesta ,iästä yms.
      Kajaani
      13
      840
    3. Mies sun käytös satutti...

      Mahdatko sitä ymmärtää...😔 Olisipa kaikki mennyt hyvin. Vaikea tästä on enää mitään ihanaa rakentaa.
      Ikävä
      41
      698
    4. Onko ankeampaa kyläpahasta kuin Haapavesi?

      Koiria kidutetaan, mustalaiset vie invaparkit, makkarakastike on finedining, kylät kuolee pois, nuoret häipyy pois ja ke
      Haapavesi
      41
      666
    5. Sukunimesi eka kirjain?

      🤗
      Ikävä
      43
      631
    6. Mies tykkään edelleen sinusta

      Harmittaa vaan tämä tilanne. Tai se kun ei ole mitään tilannetta.
      Ikävä
      47
      604
    7. Kerro vain.

      Lipsauta johtolanka...
      Ikävä
      80
      596
    8. Tönölän hukkaputki

      Tönölään rakennettiin kunnon hukkaputki verorahoilla. Ihmettelin tätä mökki sekamelskaa jo alunperin, Eikö tuollainen le
      Kuhmo
      35
      564
    9. Ei mitään käytöstä

      Ei Jumalauta. Videoidaan kun jollain hengenvaarallinen tilanne. Ja laitetaan nettiin. VITTU HÄPEÄ. Olisko kiva jos su
      Ähtäri
      29
      536
    10. 47
      514
    Aihe