Come controllare l'integrità di un files, funzioni hash e crittografiche
Autore:[Antonio Gallonetto]
Una funzione hash, è una funzione che produce in uscita una stringa partendo da un file o da una stringa. Ha le seguenti caratteristiche:
- è una funzione crittografica
- è correlata con la stringa di partenza e anche una sola modifica genera un cambiamento significativo nella stringa calcolata
- può avere delle collisioni, questo significa che due stringhe diverse possono generare la stessa stringa di uscita
- è accuratamente calcolata perchè generi la minor quantità possibile di collisioni
- è non reversibile, non riesco a calcolare la stringa di partenza partendo dall’output.
Le funzioni hash sono usate soprattutto in crittografia, ma possiamo verificare l’integrità usando degli algoritmi che calcolano una stringa hash partendo da un file o una stringa di partenza.
Uno degli algoritmi più diffusi è l’MD5, SHA-256 e SHA-512.
In Windows
In windows usiamo una utility di nirsoft che permette di calcolare in modo facile MD5,SHA1,CRC32,SHA256,SHA384,SHA512. https://www.nirsoft.net/utils/hash_my_files.html
In Mac
- MD5 da terminale digitare:
md5 nomeFile
shasum -a
- -a indica l’algoritmo
- 1 indica quello di default
- 1 oppure uno dei seguenti, 224, 256, 384, 512, 512224, 512256
- -b indica binary mode
- es:
shasum -a 512 file
- es:
crc32 nomeFile
calcola il crc32
In Linux
md5sum nomeFile
rhash --algoritmo
- es:
sudo rhash -r -u --md5 nomeFile