====== Ubuntu - OpenSSL - Compute a checksum of a file ======
OpenSSL can compute a checksum (digest) against a file.
To ensure that the contents of a file has not been tampered with, OpenSSL can compute a unique checksum for the file.
Once this checksum is computed, it can be shared and, for example, anyone downloading the file can run the same checksum process to ensure that they get the same checksum - which ensures that the contents of a file have not changed.
----
===== Get a list of checksum methods that OpenSSL supports =====
openssl dgst -list
returns:
Supported digests:
-blake2b512 -blake2s256 -md4
-md5 -md5-sha1 -ripemd
-ripemd160 -rmd160 -sha1
-sha224 -sha256 -sha3-224
-sha3-256 -sha3-384 -sha3-512
-sha384 -sha512 -sha512-224
-sha512-256 -shake128 -shake256
-sm3 -ssl3-md5 -ssl3-sha1
-whirlpool
----
===== Compute an MD5 Checksum for a file =====
openssl dgst -md5 test.sh
returns:
MD5(test.sh)= 68e2009b8a69745f4371011194a16116
**NOTE:** This can also be run as:
openssl md5 test.sh
----
===== Compute an MD5 Checksum for all files in a directory =====
OpenSSL can also be combined with find to produce fingerprints for several files:
find /home/peter -type f -print0 | xargs -0 openssl md5
or
find /home/peter -type f| xargs -d '\n' openssl md5
**NOTE:** The xargs command takes white space characters (tabs, spaces, new lines) as delimiters.
To accommodate for files which may contain spaces, the **-d** option is used to limit xarg delimiters to only the new line characters ('\n').