MD5 es SHA256 checksum ellenorzo - sajat implementacio

OSX alatt futottam bele abba, hogy nincs md5sum/sha256sum progi, es nincs is olyan alternativa, ami megeszi a linuxon generalt checksum fajlokat. Probaltam a coreutils csomagot leforgatni, nem is rossz, csak szerintem teljesen felesleges egy ekkora csomag.

Volt egy kis szabadidom, es implementaltam egy nagyon alap verziot. Elerheto itten. Erdemes elolvasni a README-t, kulonosen a Known Limitations szekciot.

Minden otletet, hibajelentest szivesen fogadok.

A repo neve tortenelmileg alakult igy. Eredetileg csak md5sum cucc volt, aztan kellett sha256 is, es nagyjabol copypasta volt a kod

Hozzászólások

Kulon bosszanto volt a fejlesztes soran, hogy OSX alatt az OpenSSL nem tartalmazza az osszes SHA implementaciot, csak az sha1-et. Kenytelen voltam egy kulso forrast igenybevenni.
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

hja, en anno sun/sparc/solaris miatt irtam meg az md5sumot, mert ott epp nem volt. azota van egy konnyed, remelhetoleg hordozhato kis valtozat. legalabbis x86, x64, sparc, dos alatt ment eddig. majd muc-re is megprobalom attenni (atmega128).

otletek:
- teszteld minel tobb os-en/arch-on
- ha jol latom ez az md5 az openssl-t hasznalja, azt mint fuggoseg bele kene tenni.

O, en azert nem raktam bele, mert OSX-en a rendszer alapbol felrakja a OpenSSL-t, ez a stuff meg alapvetoen OSX-re lett irva, noha docc nelkul megy Win32/Mingw -vel is, es - ofc - Linuxon is.
De beleirom a doksiba.

Viszont kerdes: a Known Limitations alatt is irom, hogy a szokozos fajlok nevet nem tudom kiolvasni a checksum fajlbol, elsosorban azert, mert strtok-ot hasznalok. Erre van valami tipped? Gondolkodok regexen, de...
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

$ md5sum --help
Használat: md5sum [KAPCSOLÓ] [FÁJL]...
MD5 (128 bites) ellenőrzőösszegek kiírása vagy ellenőrzése.
Ha a FÁJL nincs megadva, vagy -, akkor a szabványos bemenetet olvassa.

  -B, --binary            bináris módú olvasás
  -c, --check             MD5 összegek olvasása a FÁJLOKBÓL és
                            azok ellenőrzése
  -t, --text              olvasás szöveges módban (alapértelmezett)

Az alábbi két kapcsoló csak ellenőrzőösszegek ellenőrzésekor hasznos:
      --status            ne írjon ki semmit, az állapotkód jelzi a sikert
  -w, --warn              helytelenül formázott ellenőrzőösszeg-sorokra
                            figyelmeztet

      --help     ezen súgó megjelenítése és kilépés
      --version  verzióinformációk megjelenítése és kilépés

Az összegek a(z) RFC 1321 által leírt módon kerülnek kiszámításra.
Ellenőrzéskor a bemenetnek ezen program korábbi kimenetének kell lennie. Az
alapértelmezett mód egy sornyi ellenőrzőösszeg, egy típust jelző karakter
("*" bináris, " " szöveges fájlokhoz) és egy név kiírása minden egyes FÁJLHOZ.

A programhibákat a(z) <bug-coreutils@gnu.org> címen jelentheted.

udv Zoli

Ahh, ertem mar. Nos, nekem egyelore eleg a text modu ellenorzes, meg majd ebbol rendes projekt lesz, terv, hogy total ujrairom c++ alapokon, es pluginezhetoen, az lenne az igazi, csak hat ahhoz ugye ido kellene. Az meg nem van.
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Üdv, valószínűleg nem stimmel nálam valami mert 10.6.4-en nem akar lefordulni a kód.
Ide tettem fel a hibákat. Jó ötletnek tartom a programot egyébként, mert én kénytelen voltam macportsból feltenni eddig.

1) Ha jobban megnezed, az uriember Leopardon es nem Snow Leopardon akart forditani, de ez nem szamit. PPC-re meg a kernel modulok nagy resze is le van meg mindig forditva, PPC64-re mar nem, a fenti linken is a PPC64-re forditott libeket hianyolja. A -arch ppc64 nem kell oda, valojaban az abszolut dobhato compile flag.

2) char *line = malloc(1024); helyett siman mehet a char line[1024];, igy nem kell free sem.

3) ha mar file kezeles, az stdin kezelese nem az igazi, hianyzik. :)

4) strtok helyett keresd meg a szeparator helyet strchr()-rel es vagd kezzel tobb fele a sort. strtok() ugyis felejtos az esetek nagyobb reszeben.

---
pontscho / fresh!mindworkz

1) Parser error:
"Üdv, valószínűleg nem stimmel nálam valami mert 10.6.4-en nem akar lefordulni a kód."
Gondolom a 10.5.4 eleg regi ahhoz, hogy ne elutesnek veljem a dolgot.

2) Jo otlet, majd megnezem...

3) Igen, ez bennem is felmerult, hamarosan implementalasra kerul.

4) Igen, csak ez sokkal macerasabb, mivel dupla space-rol van szo... En arra gondoltam, hogy addig loopolom a strtok-ot, amig be nem jon az osszes resze a sornak, csak nem tudom, menni fog-e. Na majd meglatjuk, jovo heten mindenkepp akarok foglalkozni a stuffal.
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

md5sum -> md5

---
pontscho / fresh!mindworkz


$ openssl dgst [-md5|-sha256] <file

nem kielégítő megoldás? a file feldolgozáshoz még pár sor script kell.

Nem, nem eleg. Nekem egy olyan parancs kell, mint az md5sum, amivel egymenetben tudom ellenorizni a fajlokat. Raadasul magat az md5sum-ot is neha keresi par dolog, szoval kell.

PS: nalam nem erti a sha256-ot a openssl dgst...


hron@supermacro ~/Projects/localizations/qt-l10n-hu/translations ] $ openssl dgst -sha256 < qt_hu.ts 
unknown option '-sha256'
options are
-c              to output the digest with separating colons
-d              to output debug info
-hex            output as hex dump
-binary         output in binary form
-sign   file    sign digest using private key in file
-verify file    verify a signature using public key in file
-prverify file  verify a signature using private key in file
-keyform arg    key file format (PEM or ENGINE)
-signature file signature to verify
-binary         output in binary form
-engine e       use engine e, possibly a hardware device.
-md5 to use the md5 message digest algorithm (default)
-md4 to use the md4 message digest algorithm
-md2 to use the md2 message digest algorithm
-sha1 to use the sha1 message digest algorithm
-sha to use the sha message digest algorithm
-mdc2 to use the mdc2 message digest algorithm
-ripemd160 to use the ripemd160 message digest algorithm
[hron@supermacro ~/Projects/localizations/qt-l10n-hu/translations ] $ 

OS X 10.5.8
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

A normalis OpenSSL ismeri meg a SHA224-et is... Nem tudom, miert kellett ilyen idiota OSSL-t rakni az OSX-be.

Szerk: ha segit valamit...:


$ echo -n "Test" |  openssl dgst -sha
c196edc4a70092042ba1e6456bf1ea610e5263bb

--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

ha van pythonod akkor probald ki a cfv-t, ezeket ismeri: bsdmd5, crc, csv, csv2, csv4, md5, par, par2, sfv, sfvmd5, sha1, torrent

udv Zoli