Hasher slouží k napočítání a ověření kontrolních součtů u vašich souborů. S pomocí Hasheru mohou být napočítány a uloženy kontrolní součty do tzv. extended atributů. Následně je možné takto uložené kontrolní součty využít ke kontrole, zda nedošlo k poškození/změně souboru například při přenosu mezi vaším lokálním PC a datovým úložištěm, nebo při jeho uchování na datovém úložišti. Po nahrání Vašich souborů na úložiště dojde do 24 hodin k automatickému napočítání kontrolních součtů a jejich uložení do extended atributů.
Uživatelská aplikace Hasher je určena pro uživatele Datových úložišť (DÚ) CESNET. Aplikace je určena k výpočtu tzv. kontrolních součtů, které následně umožňují určit, zda byl daný soubor poškozen.
Aplikace nabízí standardní hashovací algoritmy MD5, SHA1, RMD160, SHA256, SHA384, SHA512 a SHA224. Výchozí hashovací algoritmus je MD5.
Pokud použijete příkaz hasher bez jakékoliv proměnné dojde k výpisu následujících parametrů aplikace
Po nahrání Vašich dat na úložiště dojde do 24 hodin k napočítání kontrolních součtů MD5. Následně je takto napočítané kontrolní součty možné použít pro kontrolu vašich dat jedním z následujících způsobů.
Ověření kontrolních součtů u mých souborů na úložišti
Ověření vlastních kontrolních součtů (např. SHA256) u mých souborů na úložišti
Použití aplikace Hasher pro kontrolu dat po přenesení na úložiště
Pro použití aplikace Hasher na Vašem lokálním PC musíte nejdříve provést instalaci aplikace Hasher z repozitáře DÚ. Dále můžete pokračovat návodem níže. Tento případ užití je žádoucí zejména v případě, že k přenosu souborů využíváte jakýkoliv jiný protokol než rsync.
Použití aplikace Hasher pro kontrolu dat po stažení z úložiště
Samočinný algoritmus automaticky provede napočítání a uložení výchozího MD5 kontrolního součtu do 24 hodin od uložení souboru na úložiště.
1. Ověření kontrolního součtu (výchozí MD5) na daném souboru
hasher muj_soubor Processing muj_soubor... Actual hash of muj_soubor is MD5: 92f7e6dfc18a25981a59a9f74298dd7 User checksum type MD5 verified OK on muj_soubor
2. Ověření kontrolního součtu (výchozí MD5) v libovolném adresáři (rekurze)
hasher -r muj_adresar Walking down muj_adresar/ Adding muj_adresar//muj_soubor1 Adding muj_adresar//muj_soubor2 Adding muj_adresar//muj_soubor3 Processing muj_adresar//muj_soubor3... Actual hash of muj_adresar//muj_soubor3 is MD5: b26795c69684a7c9cc4a94ff70a95b71 User checksum type MD5 verified OK on muj_adresar//muj_soubor3 Processing muj_adresar//muj_soubor2... Actual hash of muj_adresar//muj_soubor2 is MD5: 9448a1bf333fadd2a57965ec38487b89 User checksum type MD5 verified OK on muj_adresar//muj_soubor2 Processing muj_adresar//muj_soubor1... Actual hash of muj_adresar//muj_soubor1 is MD5: e5828c564f71fea3a12dde8bd5d27063 User checksum type MD5 verified OK on muj_adresar//muj_soubor1
1. Napočítání a uložení kontrolního součtu pro daný soubor s použitím algoritmu SHA256
hasher -s -d SHA256 muj_soubor Processing muj_soubor... Actual hash of muj_soubor is SHA256: 5e8cd142e6fa81bfd5ffea2516aaa69c837a33c9bcc954d2617229b626c17f
2. Napočítání a uložení kontrolního součtu SHA256 pro soubory v libovolném adresáři (rekurze)
hasher -r -s -d SHA256 muj_adresar Walking down muj_adresar Adding muj_adresar/muj_soubor1 Adding muj_adresar/muj_soubor2 Adding muj_adresar/muj_soubor3 Processing muj_adresar/muj_soubor3... Actual hash of muj_adresar/muj_soubor3 is SHA256: 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd Processing muj_adresar/muj_soubor2... Actual hash of muj_adresar/muj_soubor2 is SHA256: 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 Processing muj_adresar/muj_soubor1... Actual hash of muj_adresar/muj_soubor1 is SHA256: 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772
3. Ověření kontrolního součtu SHA256 na daném souboru
hasher -d SHA256 muj_soubor Processing muj_soubor... Actual hash of muj_soubor is SHA256: 5e8cd142e6fa81bfd5ffea2516aaa69c837a33c9bcc954d2617229b626c17f User checksum type SHA256 verified OK on muj_soubor
4. Ověření kontrolního součtu SHA256 v libovolném adresáři (rekurze)
hasher -r -d SHA256 muj_adresar Walking down muj_adresar Adding muj_adresar/muj_soubor1 Adding muj_adresar/muj_soubor2 Adding muj_adresar/muj_soubor3 Processing muj_adresar/muj_soubor3... Actual hash of muj_adresar/muj_soubor3 is SHA256: 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd User checksum type SHA256 verified OK on muj_adresar/muj_soubor3 Processing muj_adresar/muj_soubor2... Actual hash of muj_adresar/muj_soubor2 is SHA256: 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 User checksum type SHA256 verified OK on muj_adresar/muj_soubor2 Processing muj_adresar/muj_soubor1... Actual hash of muj_adresar/muj_soubor1 is SHA256: 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772 User checksum type SHA256 verified OK on muj_adresar/muj_soubor1
1. Zde je nejdříve nezbytné provést export kontrolních součtů do externího souboru. Export kontrolních součtů musíte provést na vašem lokálním PC, dle postupu popsaného v předchozí sekci odstavci export.
2. Dále přeneste požadované soubory na úložiště z Vašeho PC. Nezapomeňte rovněž přenést soubor kontrolni_soucty.txt.
3. Následně provedeme import kontrolních součtů dle postupu popsaného v předchozím sekci v odstavci import, který rovněž provede kontrolu integrity souborů.
Tento případ užití by měl být přednostně využit, pokud pro přenos dat na úložiště využíváte protokol, který neumožňuje přenos extended atributů (scp, ftp, cifs, nfs). Podstata je v tom, že si můžete napočítané kontrolní součty uložit do externího souboru (*.txt), následně můžete vaše soubory včetně *.txt souboru s napočítanými kontrolními součty stáhnout z úložiště a použít aplikaci Hasher dle návodu níže a ověřit kontrolní součty z vašeho lokálního PC obsažené v *.txt souboru.
Dále můžete pokračovat následovně:
1. Export kontrolních součtů vybraných souborů do externího souboru
1a) Export výchozích MD5 kontrolních součtů
hasher -e muj_soubor1 muj_soubor2 muj_soubor3 > kontrolni_soucty.txt cat kontrolni_soucty.txt MD5 e5828c564f71fea3a12dde8bd5d27063 muj_soubor1 MD5 9448a1bf333fadd2a57965ec38487b89 muj_soubor2 MD5 b26795c69684a7c9cc4a94ff70a95b71 muj_soubor3
Pro všechny soubory v daném adresáři lze použít příkaz:
hasher -e * > kontrolni_soucty.txt
1b) Export vlastních kontrolních součtů, zde příklad SHA256
hasher -e -d SHA256 muj_soubor1 muj_soubor2 muj_soubor3 > kontrolni_soucty.txt cat kontrolni_soucty.txt SHA256 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772 muj_soubor1 SHA256 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 muj_soubor2 SHA256 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd muj_soubor3
1c) Export kontrolních součtů souborů v daném adresáři, zde příklad SHA256
hasher -e -r -d SHA256 muj_adresar > kontrolni_soucty.txt cat kontrolni_soucty.txt SHA256 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd muj_adresar/muj_soubor3 SHA256 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 muj_adresar/muj_soubor2 SHA256 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772 muj_adresar/muj_soubor1
2. Dále přeneste požadované soubory z úložiště na Váš lokální PC. Nezapomeňte rovněž přenést soubor kontrolni_soucty.txt.
3. Následně na našem PC spustíme import kontrolních součtů ze souboru a ověříme je. Zde použijeme v konečné fázi obecný příkaz hasher , který provede kontrolu všech souborů, jak původních souborů, tak nově nahraných souborů, jejichž kontrolní součty jsou v souboru kontrolni_soucty.txt.
3a) Import a ověření defalutních MD5 kontrolních součtů
hasher -p kontrolni_soucty.txt; hasher * Processing kontrolni_soucty.txt... Actual hash of kontrolni_soucty.txt is MD5: 53d2d77158854967d3dde13a3425dd User checksum not set on 'kontrolni_soucty.txt' nothing to verify. Processing muj_soubor1... Actual hash of muj_soubor1 is MD5: e5828c564f71fea3a12dde8bd5d27063 User checksum type MD5 verified OK on muj_soubor1 Processing muj_soubor2... Actual hash of muj_soubor2 is MD5: 9448a1bf333fadd2a57965ec38487b89 User checksum type MD5 verified OK on muj_soubor2 Processing muj_soubor3... Actual hash of muj_soubor3 is MD5: b26795c69684a7c9cc4a94ff70a95b71 User checksum type MD5 verified OK on muj_soubor3
3b) Import a ověření vlastních kontrolních součtů, zde SHA256 (soubor kontrolni_soucty.txt musi byt exportován v souladu s 1b)
hasher -p kontrolni_soucty.txt; hasher -d SHA256 * Processing kontrolni_soucty.txt... Actual hash of kontrolni_soucty.txt is SHA256: 885e818d42b1d94d247b65f91e50ea097c87cfb2a9b471ab07039371ddd User checksum not set on 'kontrolni_soucty.txt' nothing to verify. Processing muj_soubor1... Actual hash of muj_soubor1 is SHA256: 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772 User checksum type SHA256 verified OK on muj_soubor1 Processing muj_soubor2... Actual hash of muj_soubor2 is SHA256: 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 User checksum type SHA256 verified OK on muj_soubor2 Processing muj_soubor3... Actual hash of muj_soubor3 is SHA256: 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd User checksum type SHA256 verified OK on muj_soubor3
Nejjednodušší možností instalace aplikace Hasher, je použití repozitáře datových úložišť CESNET. Umístění repozitářů pro jednotivé distribuce a postup jejich přidání včetně klíče naleznete níže. V případě, že používáte nepodporovanou distribuci, bude nezbytné provést kompilaci dle návodu.
Ubuntu14.04-17.04 (i386/amd64)
wget ftp://homeproj.cesnet.cz/apt/du/du_squeeze.list -O /etc/apt/sources.list.d/cesnet-du.list wget ftp://homeproj.cesnet.cz/apt/du/APT-GPG-KEY-du -O - | apt-key add - apt-get update apt-get install hasher.x86_64
Debian7-9 (i386/amd64)
wget ftp://homeproj.cesnet.cz/apt/du/du_jessie.list -O /etc/apt/sources.list.d/cesnet-du.list wget ftp://homeproj.cesnet.cz/apt/du/APT-GPG-KEY-du -O - | apt-key add - apt-get update apt-get install hasher.x86_64
openSUSE13.2 & 42.2 (pouze x86_64)
zypper addrepo ftp://homeproj.cesnet.cz/rpm/du-opensuse/stable/x86_64/ zypper install --no-recommends hasher.x86_64
CentOS6 (pouze x86_64)
wget https://du.cesnet.cz/_media/cs/navody/nfs/cesnet-du.repo -O /etc/yum.repos.d/cesnet-du.repo yum install hasher.x86_64
CentOS7 (pouze x86_64)
wget https://du.cesnet.cz/_media/cs/navody/nfs/cesnet-du7.repo -O /etc/yum.repos.d/cesnet-du.repo yum install hasher.x86_64
Pro samotnou instalaci je nejdříve nezbytné doinstalovat balíky obsahující potřebné knihovny pro následnou kompilaci. V případě Ubuntu a CentOS se jedná o následující balíky.
Ubuntu 16.10
sudo apt-get install libgnutls28-dev libattr1-dev libglib2.0-dev libgcrypt20 libgcrypt11-dev
CENTOS 7
yum install spice-glib-devel.x86_64 libattr-devel.x86_64 libgcrypt-devel.x86_64 libgcrypt.x86_64 gnutls-devel.x86_64
Dále postupujeme následujícím způsobem:
1. Zdrojové soubory aplikace Hasher naleznete pod následujícím odkazem.
2. Pejděte do adresáře ../gnutls/hasher
3. Nyní je nezbytné provést kompilaci souboru hasher.c na vasem PC pomocí následujícího příkazu.
gcc -g -o hasher hasher.c ``pkg-config --cflags --libs glib-2.0`` -Wall -I. -lgcrypt -lgnutls
4. Nyní můžete soubor hasher přesunout do /usr/local/bin adresáře. Nyní by mělo fungovat klasicke využití aplikace pomocí příkazové řádky, popsané v předcházejících sekcích.