Resources for the global digital safety training community.
Credits Last Updated 2026-08
All modern operating systems have built in hash creation/verification tools, but they are command-line based. In this session, we will use a graphical tool called QuickerHash, but we will also provide command-line options for users who are willing to use the command line and/or don’t want to download additional software.
First off, as soon as you start playing with these tools, you full find that there are tons of different hashes you can choose from.
For normal files, passwords, and text, the most common hash algorithms you’ll see are likely MD, SHA-1, and SHA-256, and more recently, SHA-384. Of these, MD5 as mentioned suffers from (relatively) easy collisions, and SHA-1 has been more recently found vulnerable to some collision attacks. Note: You may also see “SHA-2”, which is a family of hashing algorithms of which SHA-256 and SHA-384 are the most ‘popular’ specific algorithms. To make things even more clear, there is also SHA-3, which similarly has a variety of bit length, like SHA3-384.
Looking at hashing algorithms for password security, the more advanced tools (classed as Key Derivation Functions), are used - these combine multiple technologies to ensure a baseline of entropy and are built to be very slow to brute force at scale. Examples include bcrypt and scrypt.
Wikipedia maintains an article with a chart of the security of these most used hash algorithms, and a similar one for Key Derivation Functions
Quickerhash was explicitly created for digital safety trainers by Robert J. Hansen. Feedback, suggestions, and requests for changes or improvements are strongly encouraged via adding a github issue.
Downloads are available for MacOS (.dmg files), Windows (.msi) and Linux (.rpm). See the readme for additional installation instructions.
Let’s get hands on and create and verify some hashes - first up, we’ll verify the hash of the quickerhash download file itself!
QuickerHash will start up with a small selection of very common hash algorithms pre-loaded. You can use the drop down menu for Hashes to select additional classes of hashes to experiment with.
Hopefully the values matched! If not, verify you used the same hash algorithm, and are comparing the same downloaded file for both the operating system (Linux, MacOS, Windows) AND version that you downloaded.
In Powershell (v4 or above), you can use the Get-FileHash ‘cmdlet’ for producing hash values. For files:
Get-FileHash C:\Users\user1\Downloads\Contoso8_1_ENT.iso -Algorithm SHA384 | Format-List
Powershell unfortunately does not provide a simple way to compute a hash for a string. With a little work, you can get this set up however:
Within PowerShell, type:
> $profile
… and it will give you back the name of your PowerShell startup file. This file gets executed every time you start PowerShell. Open it in your preferred text editor, add this block of code, save, and exit.
function Get-StringHash
{
param(
[Parameter(Mandatory=$true)]
[string] $Text,
[ValidateSet("MD5", "SHA1", "SHA256", "SHA384", "SHA512")]
[string] $Algorithm = "SHA256"
)
$stream = [System.IO.MemoryStream]::new()
$writer = [System.IO.StreamWriter]::new($stream)
$writer.write($Text)
$writer.flush()
$stream.position = 0
return Get-FileHash -InputStream $stream -Algorithm $Algorithm
}
You now have a Get-StringHash cmdlet that works pretty much identically to Get-FileHash. E.g.,
> Get-FileHash C:\Users\user1\Downloads\disk_image.iso -Algorithm SHA256
> Get-StringHash "Hello, world!" -Algorithm SHA256
In your Terminal program or directly in a command line, you have a variety of options in both OSX and Linux to check hashes. The most flexible is the openssl tool (it can also do a wide variety of other cryptographic tricks!).
You can get a list of all the hash functions openssl supports with
openssl dgst -list
To get a hash of a short text string, use this command, replacing FOOBAR with your text (and selecting the hash, here using SHA-3)
printf FOOBAR | openssl dgst -sha3-256
To get a hash of a file, use this command, replacing FILENAME with the path to the file you want to hash (and selecting the hash, here using SHA-3):
openssl dgst -md5 FILENAME
Of note, in Ubuntu, you can also install nautilus-gtkhash (in Ubuntu 22 and before) or Quick File Hasher to add a right-click menu tab that will generate hashes for you in the file manager GUI.