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

745

    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. Missä kokoomuksen naiset?

      Hähmäistä ukkotarinaa kuultu koko viikonloppu. Kukaan ei ole kokoomuksessa edes yrittänyt pitää naisten puolta. Jopa
      Maailman menoa
      34
      3370
    2. Finland is now Petter place

      Audin B-ryhmän ralliautolla saatiin kansa voimaan hyvin. Kiitos kokoomus huumoripläjäyksestä.
      Maailman menoa
      20
      2282
    3. Ilman Stadia Suomessa ei olisi kunnon lihajalosteita

      HK, Helsingin makkaratehdas, Votkin, mitä näitä nyt onkaan. Böndellä ei ole kunnollisia jalostajia.
      Maailman menoa
      130
      1904
    4. Huomasitko? Tidjan Ban tyttöystävä paljastui - Tuttu kohutusta rakkausrealitystä

      Ban tyttöystävä on Kolmiodraama-realityn Heidi Kytö. Ba ja Kytö kertoivat maaliskuussa 2026 somessa, että he ovat seurus
      Suomalaiset julkkikset
      12
      1372
    5. Alkuperäinen Jeesuksen antama kastekäsky on Matteuksen evankeliumissa

      Matt.28:16-20 16 Ja ne yksitoista opetuslasta vaelsivat Galileaan sille vuorelle, jonne Jeesus oli käskenyt heidän menn
      Kaste
      163
      1177
    6. Vilpitön totuudenetsiä löytää totuuden kasteesta.

      Nykyaikana on niin paljon tietoa saatavilla että vilpitön totuudenetsiä löytää totuuden myös kristillisestä kasteesta. R
      Kaste
      450
      1032
    7. Pistä joku tunniste vuosien takaa

      Meidän välillä. Naiselta pyydän.
      Ikävä
      47
      1004
    8. Pidätkö vielä elämäsi

      Rakkautena minua
      Ikävä
      55
      831
    9. Toivon että kuulut elämääni

      Mutta aika näyttää miten läheisesti. Lupaan kertoa jossain sivulauseessa, kun muutan paikkaa.
      Ikävä
      33
      783
    10. Mietin tässä yhtä kysymystä

      Pysyisitkö minun kävelytahdissa mukana?
      Ikävä
      69
      767
    Aihe