Miten Freepascalin md5-funktiolla voidaan merkkijono muuttaa hashiksi? Olen yrittänyt kaikilla tavoin, mutta vain pukkaa erroria ja mikä toi TMD5Digest oikein on?
Vastaukset 4
- Guillermo Pascal
vaikka toi paketti.
http://www.freepascal.org/packages/md5.html - 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
Uskallanko laittaa sulle viestiä?
Se viesti on tossa valmiina ja lähettämistä vaille valmis. Kun ei kauhee sti tunneta niin eipä sillä olisi niin väliä. S58780- 34775
Mies joka on oikeasti kiinnostunut
Ja näkee sut pitkäaikaisena kumppanina, siirtää vaikka vuoria selvittääkseen asiat eikä ota pienintäkään riskiä menettää125726- 88653
- 24554
- 40527
Ei siitä pääse yli, eikä ympäri!
Pakko se on myöntää ja tunnustaa. Olisin halunnut p*nna sinua sydämeni kyllyydestä. Itseäni vanhemmalle naiselle63489Lehtikankaan oppilas kuolema
Mistä lie tyttöparka löytyny, mikä ajaa tekemään itsemurhan tuon ikäsenä 😞9462- 40444
Rauha, sopiiko
Ei häiritä enää toisiamme. Annetaan molemmille rauha unohtaa, pyydän tätä todella. Kiitos. Miehelle.64434- 45426
- 57409
Nyt kaatuu Kuisla
Reima Kuisla hakee saneeraukseen – Joitakin velkoja on jo ulosotossa https://www.ilkkapohjalainen.fi/reima-kuisla-hakee24400Kunnanhallitus
Miten käy täällä vuosia tuomioita jakaneelle valittajalle, hovioikeus hylännyt kaikki syytteet.23398- 72393
- 39393
- 38384
- 33381
- 35377
Ylen suosikkisarja tuotti pettymyksen - Loppuiko Ellis tv-sarja todella tähän?
Nyt Suomessa on nähty tv-sarjan kaksi ensimmäistä kautta. Toisella kaudella tiedossa oli tv-katsojille ikävä yllätys,0376