Lyhyesti ohjelmasta:
Tarkoituksena on lukea tiedostosta rivi kerrallaan ja tehdä siitä rivillä sijaitsevasta sanasta md5 hashi. Ohjelma toimii hyvin pienillä sanakirjoilla mutta jos tiedostosto sisältää monta riviä tekstiä, ei ohjelma enää toimikkaan. Mistähän tämä johtuu?
Lähdekoodi:
use Digest::MD5 qw(md5_hex);
$hasku = "de250bd0f1f8f786630b00d27f18f247";
open (SN, "tiedostoa") or die "Tiedostoa ei löydy: $!\n";
@nimi = <SN>;
print "\n";
foreach $elementti(@nimi) {
chomp($elementti);
print "testataan $elementti \n";
$matsku = md5_hex($elementti);
if ($matsku eq $hasku) {
print ("Osuma ====== $elementti ==== vastaa $hasku \n");
last;
}
}
print "\n";
Perl - MD5 ongelma
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
5 viestiä
• Sivu 1/1
-
- Viestit: 104
- Liittynyt: 12.2.2005 klo 15.39
Perl - MD5 ongelma
Viesti Kirjoittaja Shine »
-
- Viestit: 9
- Liittynyt: 13.6.2005 klo 15.08
Re: Perl - MD5 ongelma
Viesti Kirjoittaja xnode »
En voi nyt kokeilla, mutta veikkaisin että ongelma saattais olla @nimi = <SN>. Eli vois olla jotain sellaista että isompi tiedosto ei tule luetuksi kokonaan taulukkoon tms..
Kokeiles tälläistä versiota
Ota pois: @nimi = <SN>:
while(<SN>) {
$elementti = $_;
ja jatkat muuten kuten ennenkin
Kokeiles tälläistä versiota
Ota pois: @nimi = <SN>:
while(<SN>) {
$elementti = $_;
ja jatkat muuten kuten ennenkin
-
- Viestit: 104
- Liittynyt: 12.2.2005 klo 15.39
Re: Perl - MD5 ongelma
Viesti Kirjoittaja Shine »
Juu eli tein nuo ehdottamasi muutokset, ainakin luulen tehneeni ne oikein
:
#!/usr/bin/perl
use warnings;
use Digest::MD5 qw(md5_hex);
$hasku = "a8e2644894fb71c1d4e49f39d0b11687";
open (SN, "african") or die "Tiedostoa ei löydy: $!\n";
@nimi = <SN>;
print "\n";
OHJ: foreach $elementti(@nimi) {
chomp($elementti);
print "$elementti \n";
$matsku = md5_hex($elementti);
if ($matsku eq $hasku) {
print ("Osuma ====== $elementti ==== vastaa $hasku \n");
last OHJ;
}
}
print "\n";
Lisäsin myös tuon OHJ:n tuohon last-toimintoon, kun ei eräässä toisessa ohjelmassa suostunut lopettamaan ilman tuota.
Mutta eipä tämä vieläkään oikein toimi...Tämä löytää normaalisti pienestä tiedostosta mutta edelleen ei löydä useamman sanan joukosta kuin viimeisellä rivillä olevan sanan.
![Hymy [:)]](./images/smilies/icon_smile.gif)
#!/usr/bin/perl
use warnings;
use Digest::MD5 qw(md5_hex);
$hasku = "a8e2644894fb71c1d4e49f39d0b11687";
open (SN, "african") or die "Tiedostoa ei löydy: $!\n";
@nimi = <SN>;
print "\n";
OHJ: foreach $elementti(@nimi) {
chomp($elementti);
print "$elementti \n";
$matsku = md5_hex($elementti);
if ($matsku eq $hasku) {
print ("Osuma ====== $elementti ==== vastaa $hasku \n");
last OHJ;
}
}
print "\n";
Lisäsin myös tuon OHJ:n tuohon last-toimintoon, kun ei eräässä toisessa ohjelmassa suostunut lopettamaan ilman tuota.
Mutta eipä tämä vieläkään oikein toimi...Tämä löytää normaalisti pienestä tiedostosta mutta edelleen ei löydä useamman sanan joukosta kuin viimeisellä rivillä olevan sanan.
-
- Viestit: 1014
- Liittynyt: 6.11.2004 klo 19.35
Re: Perl - MD5 ongelma
Viesti Kirjoittaja nobu178 »
Ensimmäisessä viestissä kirjoittamasi koodi on mielestäni ihan oikein. Minulla se toimi 2710 rivin sanakirjatiedoston kanssa. Uskon, että tulos on sama, vaikka käyttäisin isompaa sanakirjatiedostoa. Oletko tarkistanut sanakirjatiedostosi rakenteen? Onko rivinvaihdot Unixin? En usko, että silmukoita vaihtamalla ongelmasi ratkeaa.
kolme yhteistyössä, yksi tietämättä
-
- Viestit: 104
- Liittynyt: 12.2.2005 klo 15.39
Re: Perl - MD5 ongelma
Viesti Kirjoittaja Shine »
Kiitoksia nobu178. Ongelma ratkesi kun konvertoin tiedoston rivinvaihdot unixin mukaisiksi. Kesti kauan (130 575 riviä) mutta nyt toimi..
5 viestiä
• Sivu 1/1
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit