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. Mikä kaivatussasi ärsyttää

      Juuri nyt, tällä hetkellä?
      Ikävä
      126
      1525
    2. Kysely : Juuri kukaan ei halua nykyisen hallituksen jatkavan

      Ylen kysely: Juuri kukaan ei halua nykyisen hallituksen jatkavan – eivät edes halli­tus­puolueiden omat kannattajat Kes
      Hallitus
      111
      1280
    3. Salaisuudet paljastuu

      Viimeiset hetket meneillään ottaa yhteyttä. Kertoa totuus ja selvittää asioita. Viimeiset hetket meneillään jos joku
      Ikävä
      136
      1142
    4. Poliisi pamputti Variskankaalla

      Mistä lie alkanut ja miksi poliisit kutsuttu, mutta mielestäni hyvin toimittu. Jos haluaa rähistä eikä rauhoitu puheella
      Kajaani
      55
      1111
    5. vapaa

      sana :) 🚮
      Ikävä
      72
      793
    6. Karita Tykkä mennyt kihloihin.

      Onnittelu kuuluu hänelle ja tulevalle aviopuolisolleen.
      Kotimaiset julkkisjuorut
      100
      776
    7. 34
      748
    8. Nainen tosi ikävä sua

      Näkispä edes ohimennen
      Ikävä
      25
      746
    9. Lautturin poliisipiiritys

      Mitä Lautturilla yöllä tapahtui
      Huittinen
      9
      665
    10. S-ryhmän ihmisoikeuslinja ei kestä omaa hankintaketjuaan

      S-ryhmän Israel-boikotin suurin uskottavuusongelma löytyy yllättävän läheltä, SOK:n omien tuotemerkkien hankintaketjuist
      Maailman menoa
      26
      629
    Aihe