Table of Contents

Gids: Hashes van bestanden verkrijgen op Linux met ingebouwde tools

Inleiding

In de wereld van Linux-systemen is het verkrijgen van bestandshashes essentieel om gegevensintegriteit te waarborgen en de authenticiteit van bestanden te verifiëren. Bestandshashes dienen als unieke identificatoren waarmee gebruikers pogingen tot manipulatie kunnen detecteren en de integriteit van gegevens kunnen valideren. In deze uitgebreide gids onderzoeken we hoe je SHA256, MD5 en SHA1 hashes van bestanden op Linux verkrijgt met ingebouwde tools. Volg de stapsgewijze instructies en leer aan de hand van specifieke voorbeelden.


Hashes verkrijgen op Linux met ingebouwde tools

Linux biedt verschillende ingebouwde tools waarmee gebruikers bestandshashes kunnen berekenen zonder extra software te installeren. We behandelen drie veelgebruikte hashing-algoritmen: SHA256, MD5 en SHA1.

De SHA256-hash verkrijgen

Om de SHA256-hash van een bestand op Linux te verkrijgen, kun je het sha256sum-commando gebruiken. Open een terminal en navigeer naar de map waar het bestand zich bevindt. Voer vervolgens het volgende commando uit:

sha256sum file_path

Vervang file_path door het daadwerkelijke pad naar je bestand.

De MD5- en SHA1-hashes verkrijgen

Je kunt ook de MD5 en SHA1 hashes van een bestand op Linux verkrijgen met vergelijkbare commando’s:

  • Om de MD5 hash te verkrijgen:
md5sum file_path
  • Om de SHA1 hash te verkrijgen:
sha1sum file_path

Vervang file_path door het pad naar je bestand in beide commando’s.

Voorbeelden

Laten we specifieke voorbeelden bekijken om het proces van het verkrijgen van hashes met ingebouwde tools op Linux te illustreren.

Voorbeeld 1: SHA256-hash verkrijgen

Stel je hebt een bestand genaamd document.pdf in de map /home/user/docs. Om de SHA256 hash van dit bestand op Linux te verkrijgen, voer je het volgende commando uit:

sha256sum /home/user/docs/document.pdf

De uitvoer toont de SHA256 hash-waarde van het bestand.

Voorbeeld 2: MD5-hash verkrijgen

Stel je hebt een bestand genaamd image.jpg opgeslagen in de map /home/user/pictures. Om de MD5 hash van dit bestand op Linux te verkrijgen, voer je het volgende commando uit:

md5sum /home/user/pictures/image.jpg

De terminal toont de MD5 hash-waarde van het bestand.

Voorbeeld 3: SHA1-hash verkrijgen

Stel je voor dat je een bestand hebt genaamd data.txt in de map /home/user/files. Om de SHA1 hash van dit bestand op Linux te verkrijgen, voer je het volgende commando uit:

sha1sum /home/user/files/data.txt

De uitvoer toont de SHA1 hash-waarde van het bestand.


Geavanceerde Linux-hashingbewerkingen

Meerdere bestanden tegelijk hashen

# Hash all PDF files in directory
sha256sum /home/user/docs/*.pdf

# Hash all files recursively
find /home/user/data -type f -exec sha256sum {} \;

Hash-manifestbestand maken

Genereer een bestand met hashes voor latere verificatie:

# Create checksum file
sha256sum /home/user/important/* > checksums.txt

# Verify files against checksum file
sha256sum -c checksums.txt

Uitvoer wanneer bestanden overeenkomen:

file1.txt: OK
file2.pdf: OK
file3.jpg: OK

Hash vergelijken met verwachte waarde

# Method 1: Manual comparison
expected_hash="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
actual_hash=$(sha256sum /path/to/file | awk '{print $1}')

if [ "$actual_hash" == "$expected_hash" ]; then
    echo "✓ File verified - hash matches"
else
    echo "✗ WARNING: Hash mismatch!"
fi
# Method 2: Using echo and checking
echo "$expected_hash  /path/to/file" | sha256sum -c -

Hash vanaf standaardinvoer

# Hash text directly
echo -n "Hello World" | sha256sum

# Hash command output
cat /etc/passwd | sha256sum

# Hash without trailing newline (important!)
echo -n "text" | sha256sum  # Correct
echo "text" | sha256sum     # Different hash (includes newline)

Praktische gebruikssituaties

1. Gedownloade ISO’s verifiëren

Linux-distributies bieden hash-checksums om downloads te verifiëren:

# Download Ubuntu ISO hash
wget https://releases.ubuntu.com/SHA256SUMS

# Verify your downloaded ISO
sha256sum ubuntu-26.04-desktop-amd64.iso

# Compare against published hash
grep ubuntu-26.04-desktop-amd64.iso SHA256SUMS

2. Bestandsmanipulatie detecteren

Kritieke systeembestanden monitoren:

# Create baseline
sudo sha256sum /etc/passwd /etc/shadow /etc/sudoers > /secure/baseline-hashes.txt

# Later, check for changes
sudo sha256sum -c /secure/baseline-hashes.txt

# Script for monitoring
#!/bin/bash
if ! sudo sha256sum -c /secure/baseline-hashes.txt > /dev/null 2>&1; then
    echo "ALERT: System files modified!" | mail -s "Security Alert" [email protected]
fi

3. Bestanden dedupliceren

Dubbele bestanden vinden met hashes:

# Find duplicates in directory
find /home/user/photos -type f -exec sha256sum {} \; | sort | uniq -w 64 -D

4. Back-upintegriteit verifiëren

# Create hash manifest before backup
find /data -type f -exec sha256sum {} \; > /backup/manifest-$(date +%Y%m%d).txt

# After restore, verify
sha256sum -c /backup/manifest-20260524.txt

Automatiseringsscripts

Script 1: Recursieve hashgenerator

#!/bin/bash
# hash-directory.sh
# Usage: ./hash-directory.sh /path/to/directory

if [ $# -eq 0 ]; then
    echo "Usage: $0 <directory>"
    exit 1
fi

directory="$1"
output="hashes-$(date +%Y%m%d-%H%M%S).txt"

echo "Generating SHA256 hashes for: $directory"
find "$directory" -type f -exec sha256sum {} \; > "$output"
echo "✓ Saved $(wc -l < "$output") file hashes to: $output"

Script 2: Hash-verificatietool

#!/bin/bash
# verify-hashes.sh
# Usage: ./verify-hashes.sh checksums.txt

if [ ! -f "$1" ]; then
    echo "Error: Checksum file not found"
    exit 1
fi

echo "Verifying file integrity..."
if sha256sum -c "$1" 2>/dev/null; then
    echo "✓ All files verified successfully"
    exit 0
else
    echo "✗ Some files failed verification"
    exit 1
fi

Script 3: Downloadverificatie

#!/bin/bash
# verify-download.sh <file> <expected-sha256>

file="$1"
expected="$2"

if [ ! -f "$file" ]; then
    echo "Error: File not found"
    exit 1
fi

actual=$(sha256sum "$file" | awk '{print $1}')

if [ "$actual" == "$expected" ]; then
    echo "✓ Download verified - SHA256 matches"
    exit 0
else
    echo "✗ DANGER: SHA256 mismatch!"
    echo "Expected: $expected"
    echo "Actual:   $actual"
    exit 1
fi

Prestatieoptimalisatie

Grote bestanden efficiënt hashen

Voor zeer grote bestanden kun je de voortgang volgen:

# Using pv (pipe viewer) to show progress
pv large-file.iso | sha256sum

# Install pv if needed
sudo apt install pv  # Debian/Ubuntu
sudo dnf install pv  # Fedora

Parallel hashen

Hash meerdere bestanden parallel met GNU Parallel:

# Install parallel
sudo apt install parallel

# Hash files in parallel (4 jobs)
find /data -type f | parallel -j 4 sha256sum {} > hashes.txt

Hash-algoritmen benchmarken

# Compare speed of different algorithms
time sha256sum large-file.bin
time sha1sum large-file.bin
time md5sum large-file.bin

# Typical results (1GB file):
# MD5:    ~1-2 seconds (fastest, insecure)
# SHA1:   ~2-3 seconds (deprecated)
# SHA256: ~3-5 seconds (recommended)

Beveiligingsvergelijking van hash-algoritmen

AlgoritmeHashlengteStatus 2026Gebruikssituatie
SHA-256256-bit (64 tekens)✅ VeiligAanbevolen voor alle beveiligingsdoeleinden
SHA-512512-bit (128 tekens)✅ VeiligExtra beveiliging voor gevoelige data
SHA-1160-bit (40 tekens)⚠️ VerouderdAlleen voor legacy-compatibiliteit
MD5128-bit (32 tekens)❌ GebrokenAlleen voor niet-beveiligingsdoeleinden

Aanbeveling 2026: Gebruik altijd SHA-256 of SHA-512 voor beveiligingskritische toepassingen.


Integratie met pakketbeheerders

APT-pakketten verifiëren (Debian/Ubuntu)

# Check package integrity
debsums -c

# Verify specific package
debsums openssh-server

RPM-pakketten verifiëren (Fedora/RHEL)

# Check all packages
rpm -Va

# Verify specific package
rpm -V openssh-server

Beste praktijken voor 2026

  1. Gebruik SHA-256 als standaard: Het huidige beveiligingsstandaard
  2. Vermijd MD5 en SHA-1 voor beveiliging: Alleen voor legacy-compatibiliteit
  3. Gebruik altijd de -c-vlag voor verificatie: sha256sum -c checksums.txt
  4. Bewaar checksums apart: Sla hashes niet op bij de bestanden die ze verifiëren
  5. Gebruik -b voor binaire modus: sha256sum -b file.bin (belangrijk op sommige systemen)
  6. Automatiseer verificatie: Maak cronjobs voor kritieke bestandsmonitoring
  7. Gebruik --quiet in scripts: Onderdruk OK-meldingen met sha256sum -c --quiet

Problemen oplossen

“No such file or directory”

Oplossing: Gebruik aanhalingstekens voor paden met spaties:

sha256sum "/path/with spaces/file.txt"

“WARNING: X lines are improperly formatted”

Oplossing: Het checksum-bestandsformaat moet zijn:

hash_value  filename

Let op de twee spaties tussen hash en bestandsnaam.

Toegang geweigerd

Oplossing: Gebruik sudo voor systeembestanden:

sudo sha256sum /etc/shadow

Cross-platform verificatie

Linux-hashes verifiëren op Windows

# PowerShell on Windows
Get-FileHash -Algorithm SHA256 file.txt

Linux-hashes verifiëren op macOS

# macOS uses shasum
shasum -a 256 file.txt

Conclusie

Linux biedt krachtige ingebouwde tools (sha256sum, md5sum, sha1sum) voor bestandshashing. Of je nu downloads verifieert, bestandsintegriteit bewaakt, duplicaten detecteert of back-upvaliditeit waarborgt, het beheersen van deze commando’s is essentieel voor systeembeheer en beveiliging in 2026.

belangrijkste punten:

  • Gebruik sha256sum voor alle beveiligingsgerelateerde hashing
  • Maak hash-manifesten met sha256sum * > checksums.txt
  • Verifieer bestanden met sha256sum -c checksums.txt
  • Automatiseer hash-controle in scripts voor kritieke bestanden
  • Vermijd MD5 en SHA-1 voor beveiligingsdoeleinden

Referenties

  1. sha256sum - Linux man-pagina
  2. md5sum - Linux man-pagina
  3. sha1sum - Linux man-pagina
  4. GNU Coreutils - Checksums
  5. NIST Hashfuncties