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

761

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

    Luetuimmat keskustelut

    1. Mitä mietit juuri nyt?

      🤔
      Ikävä
      92
      1066
    2. Aurinkoni...

      On ikävä sua ❤️
      Ikävä
      55
      732
    3. Huonoja uutisia-nyt lähtee höyrylaivat

      https://www.ita-savo.fi/ Konkurssiin meni tämäkin yritys. Raja kiinni ja venäläiset turistit puuttuvat. Täällä menee pe
      Savonlinna
      35
      614
    4. Ei näytä hyvältä

      Kyllä nyt Ähtäriä viedään vesikelkalla. Neuvotteliat untuvikkoja kaikki. Mikko tietty tapansa mukaan loikki puheenjohtaj
      Ähtäri
      39
      546
    5. Älä itke rakas.

      Tunnen sun kyyneleet silmissäni. Kaikki tulee menemään hyvin. Loppu häämöttää jo...
      Ikävä
      49
      490
    6. Jos vielä toivot...mies...

      Saisinpa jonkun merkin sinulta, jos vielä odotat 📝➡️📱 Rohkeus on mennyt jos seurustelet vaikka nykyisin. En halua häi
      Ikävä
      46
      475
    7. On ikävä sua

      Muru.
      Ikävä
      31
      469
    8. Ilahtuisin jos laittaisit viestin

      Mutta et niin tee 😔 sillä sun mielestä on mun vuoro.
      Ikävä
      34
      447
    9. Olet hurmaava

      Olet paras mies, joka on tullut vastaan. Sinussa on jotakin, mitä muissa ei ole. En vaan tiedä, mikä on oikein sinun su
      Ikävä
      14
      441
    10. Minkä haluaisit

      Nähdä kaivatultasi
      Ikävä
      38
      434
    Aihe