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

750

    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. Kela tukee virallisesti Pride-liikettä

      Iso kiitos Kansaneläkelaitokselle tuen osoittamisesta myös vähemmistöille. Näin toimii vastuullinen valtiollinen koko k
      Maailman menoa
      110
      4310
    2. Pride-liputus närästää monissa Suomen kunnissa

      Suomen lipun nostamisesta on laki. Pride‑liputuksesta ei. Kieltäytyviin kuntiin kohdistuu poliittista painostusta kuin k
      Maailman menoa
      72
      3116
    3. Hitaille omat kassat

      Kassoilla hidastelevat ärsyttävät. Menee heti loppupäivä pilalle, kun kauppareissu kestää hidastelijoiden takia. Näille
      Maailman menoa
      315
      2871
    4. Jorma Lind kuollut

      Ylen uutisankkurina 40 vuotta toiminut Jorma Lind on kuollut 85-vuotiaana. https://yle.fi/a/74-20230265 ARVl on näet
      Maailman menoa
      62
      2352
    5. Mikä on kaunein

      Ja hellyttävin hetki irl kaivattusi kanssa?
      Ikävä
      77
      1562
    6. Mahdatko ymmärtää sitä

      Mä en selviä jollei me jutella kunnolla. Tarvitsen sua siihen. Etkä sä voi sitä tietää kun en ole ilmaissut mutta olen
      Ikävä
      77
      1388
    7. Kävisikö tällainen sopimus?

      Olisitko valmis juttelemaan jo ensi viikolla kahden kesken?
      Ikävä
      98
      1352
    8. Mitä yhteistä sinulla

      on kaivattusi kanssa? Sama musiikkimaku, tai huumorintaju, tai ehkä työpaikka? Vai ettekö tunne vielä niin hyvin?
      Ikävä
      71
      1176
    9. Nyt kerrot mies mitä ajattelet minusta

      Ihan suoraan ja suodattamatta.
      Ikävä
      77
      1138
    10. Ensimmäisenä Helluntaina ei uudelleen kastettu KETÄÄN!

      Raamattu kertoo, että Helluntaina kastettiin. Mutta vaikka Raamattu ei erikseen kerro tiedän VARMASTI Ettei
      Kaste
      691
      1121
    Aihe