# Encryptie en decryptie met gpg

Met behulp van de Linux tool gpg kan je bestanden versleutelen (encrypten) en ook weer ontsleutelen (decrypten).  
De methode die we hier bespreken is "Symmetric Encryption". We versleutelen hierbij het bestand met een enkel wachtwoord (passphrase).

In Debian Linux kan je eerst controleren of gpg al geïnstalleerd is met:

```bash
gpg --version
```

Mocht dit nog niet het geval zijn, dan kan je gpg installeren met:

```bash
sudo apt install gnupg
```

#### Encryptie van bestanden

Je kunt een bestand versleutelen met de volgende opdracht. Hierbij geven we het versleutelwachtwoord op in de commandoregel:

```bash
gpg --batch -c --passphrase 'passphrase' file.txt
```

Veiliger is om het wachtwoord (passphrase) in een apart bestand te zetten en deze zodanig rechten te geven dat deze bijvoorbeeld enkel te lezen is door de root gebruiker. In onderstaand voorbeeld staat het wachtwoord in /etc/gpg/pass.txt

```bash
gpg --batch -c --passphrase-file /etc/gpg/pass.txt file.txt
```

Het versleutelde bestand krijgt automatisch de extensie .gpg, dus in ons voorbeeld file.txt.gpg

####   
Decryptie van bestanden

Wanneer je het wachtwoord meegeeft in de commandline:

```bash
gpg --batch --output file.txt --passphrase 'passphrase' --decrypt file.txt.gpg
```

Met behulp van het wachtwoordbestand wordt dit:

```bash
gpg --batch --output file.txt --passphrase-file /etc/gpg/pass.txt --decrypt file.txt.gpg
```

Hierbij geeft de optie --output aan welke naam je het ontsleutelde bestand wilt geven, in dit voorbeeld file.txt

####   
Decryptie van meerdere bestanden tegelijk  


Onderstaand commando is handig wanneer je meerdere bestanden tegelijk wilt decrypten.  
Het voordeel hiervan is dat je geen "output" file hoeft op te geven.  
De bestandsnaam wordt dezelfde naam zonder de .gpg extensie.  
Je kunt hiermee ook een enkel bestand decrypten door de wildcard aan te passen.

```bash
gpg --batch --passphrase-file /etc/gpg/pass.txt --decrypt-files *.gpg
```