/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
md5sum af en fil...
Fra : Michael Banzon


Dato : 18-08-02 19:13

Hej,

Er der nogen der har et forslag til hvordan man gør dette??

Med mindre filer er det muligt at læse hele inholdet ind i et
array og lave en
"java.security.MessageDigest.getInstance("MD5").digest(data[]);"

men med større filer (700+ MB) vil det naturligvis forsage en fejl pga.
memory-overload... :-/

Jeg har tænkt på at loade mindre blokke (omkring 4K) fra filen ind i et
array
og så padde det med den foregående md5-sum, for derefter at lave en ny, osv.

Er det måden at gøre det på??

På forhånd tak...

/ Michael Banzon



 
 
Finn Nielsen (18-08-2002)
Kommentar
Fra : Finn Nielsen


Dato : 18-08-02 20:26

"Michael Banzon" <michael@banzon.dk> writes:

> Med mindre filer er det muligt at læse hele inholdet ind i et
> array og lave en
> "java.security.MessageDigest.getInstance("MD5").digest(data[]);"
>
> men med større filer (700+ MB) vil det naturligvis forsage en fejl pga.
> memory-overload... :-/
>
> Jeg har tænkt på at loade mindre blokke (omkring 4K) fra filen ind i et
> array
> og så padde det med den foregående md5-sum, for derefter at lave en ny, osv.
>
> Er det måden at gøre det på??

Du bruger jo java.security.MessageDigest til at udregne md5 summen med.
Overvej at læse dokumentationen for den..



msgdigest = java.security.MessageDigest.getInstance("MD5");
while (<more data>)
{
msgdigest.update(<the data>);
}
md5 = msgdigest.digest();


--
Finn Nielsen - http://www.zznyyd.dk/

"Creatures seemed to turn up in the world randomly, and certainly not
according to any pictures in a book." - The science of Discworld

Michael Banzon (18-08-2002)
Kommentar
Fra : Michael Banzon


Dato : 18-08-02 21:22


"Finn Nielsen" <spamtrap1@zznyyd.dk> skrev i en meddelelse
news:m3y9b47yut.fsf@triton.zznyyd.dk...
> "Michael Banzon" <michael@banzon.dk> writes:
>
> > Med mindre filer er det muligt at læse hele inholdet ind i et
> > array og lave en
> > "java.security.MessageDigest.getInstance("MD5").digest(data[]);"
> >
> > men med større filer (700+ MB) vil det naturligvis forsage en fejl pga.
> > memory-overload... :-/
> >
> > Jeg har tænkt på at loade mindre blokke (omkring 4K) fra filen ind i et
> > array
> > og så padde det med den foregående md5-sum, for derefter at lave en ny,
osv.
> >
> > Er det måden at gøre det på??
>
> Du bruger jo java.security.MessageDigest til at udregne md5 summen med.
> Overvej at læse dokumentationen for den..
>
>
>
> msgdigest = java.security.MessageDigest.getInstance("MD5");
> while (<more data>)
> {
> msgdigest.update(<the data>);
> }
> md5 = msgdigest.digest();
>
>
> --
> Finn Nielsen - http://www.zznyyd.dk/
>
> "Creatures seemed to turn up in the world randomly, and certainly not
> according to any pictures in a book." - The science of Discworld

Jaja.... Og tak...
Selve metoden vedrørende MessageDigest er jeg klar over, hovedproblemet
er at jeg ikke kan bede programmet om at læse hele filen af een gang...

Så jeg skal skrive <>10 linier kode i stedet for en enkelt... Øv...
(glad for one-liners!) ...

Tak for bekrædftigelsen...

/ Michael Banzon



Michael Banzon (22-08-2002)
Kommentar
Fra : Michael Banzon


Dato : 22-08-02 08:45


"Michael Banzon" <michael@banzon.dk> skrev i en meddelelse
news:LsR79.6380$ww6.944498@news010.worldonline.dk...
> Hej,
>
> Er der nogen der har et forslag til hvordan man gør dette??
>
> Med mindre filer er det muligt at læse hele inholdet ind i et
> array og lave en
> "java.security.MessageDigest.getInstance("MD5").digest(data[]);"
>
> men med større filer (700+ MB) vil det naturligvis forsage en fejl pga.
> memory-overload... :-/
>
> Jeg har tænkt på at loade mindre blokke (omkring 4K) fra filen ind i et
> array
> og så padde det med den foregående md5-sum, for derefter at lave en ny,
osv.
>
> Er det måden at gøre det på??
>
> På forhånd tak...
>
> / Michael Banzon
>
>

Nu har jeg lavet det...
Mit Java-program er hurtigere end Lunix' m5sum, på de samme filer...
(Har testet det 25 gange på 10 forskellige 500+ MB filer)

/ Michael



Thorbjoern Ravn Ande~ (22-08-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 22-08-02 08:49

"Michael Banzon" <michael@banzon.dk> writes:

> Mit Java-program er hurtigere end Lunix' m5sum, på de samme filer...
> (Har testet det 25 gange på 10 forskellige 500+ MB filer)

Den kode der faktisk laver arbejdet for dig, ligger formentlig i et C bibliotek.

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Michael Banzon (22-08-2002)
Kommentar
Fra : Michael Banzon


Dato : 22-08-02 08:57


"Thorbjoern Ravn Andersen" <thunderbear@bigfoot.com> skrev i en meddelelse
news:kkit23l4f3.fsf@mimer.null.dk...
> "Michael Banzon" <michael@banzon.dk> writes:
>
> > Mit Java-program er hurtigere end Lunix' m5sum, på de samme filer...
> > (Har testet det 25 gange på 10 forskellige 500+ MB filer)
>
> Den kode der faktisk laver arbejdet for dig, ligger formentlig i et C
bibliotek.
>
> --
> Thorbjørn Ravn Andersen
> http://homepage.mac.com/ravn

jaaa.... men alligevel... Men ok, jeg klager ikke, set fra mit synspunkt
er det jo bedst jo hurtigere det går...

/ Michael



Peter Lind (22-08-2002)
Kommentar
Fra : Peter Lind


Dato : 22-08-02 10:16


"Michael Banzon" <michael@banzon.dk> wrote in message
news:2E099.10552$ww6.1557834@news010.worldonline.dk...
>
> "Michael Banzon" <michael@banzon.dk> skrev i en meddelelse
[snip]
> > "java.security.MessageDigest.getInstance("MD5").digest(data[]);"
>
> Nu har jeg lavet det...
> Mit Java-program er hurtigere end Lunix' m5sum, på de samme filer...
> (Har testet det 25 gange på 10 forskellige 500+ MB filer)

Hmm - eftersom Lunix, mig bekendt, kun kan køre på Commodore 64 og 128 (med
op til 2MHz), så er jeg nu ikke specielt imponeret...
Medmindre selvfølgelig det også lykkedes dig, at køre java på en Commodore
64 - så er jeg meget imponeret, og vil gerne høre nærmere.

/Peter



Thorbjoern Ravn Ande~ (22-08-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 22-08-02 11:30

"Peter Lind" <peterlind@hotmail.com> writes:

> Medmindre selvfølgelig det også lykkedes dig, at køre java på en Commodore
> 64 - så er jeg meget imponeret, og vil gerne høre nærmere.

Kan det koere paa RCX kan det vel ogsaa bringes til at koere paa en
C64'er.

http://tinyvm.sourceforge.net/
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Michael Banzon (22-08-2002)
Kommentar
Fra : Michael Banzon


Dato : 22-08-02 12:24


"Peter Lind" <peterlind@hotmail.com> skrev i en meddelelse
news:ak2a45$2t2u$1@news.cybercity.dk...
>
> "Michael Banzon" <michael@banzon.dk> wrote in message
> news:2E099.10552$ww6.1557834@news010.worldonline.dk...
> >
> > "Michael Banzon" <michael@banzon.dk> skrev i en meddelelse
> [snip]
> > > "java.security.MessageDigest.getInstance("MD5").digest(data[]);"
> >
> > Nu har jeg lavet det...
> > Mit Java-program er hurtigere end Lunix' m5sum, på de samme filer...
> > (Har testet det 25 gange på 10 forskellige 500+ MB filer)
>
> Hmm - eftersom Lunix, mig bekendt, kun kan køre på Commodore 64 og 128
(med
> op til 2MHz), så er jeg nu ikke specielt imponeret...
> Medmindre selvfølgelig det også lykkedes dig, at køre java på en Commodore
> 64 - så er jeg meget imponeret, og vil gerne høre nærmere.
>
> /Peter
>
>

.... ... *suk* tag mit indlæg og lav en søg-og-erstat på Lunix med Linux...
det har noget at gøre med tyngdeaccelerationen at gøre... spørg mig
ikke hvorfor... U'er er vidst tungere end I'er... ???

/ Michael



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408521
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste