Vim posiada wbudowany mechanizm szyfrowania, do niedawna Vim potrafił szyfrować wyłącznie metodą zip, nowsze wersje potrafią szyfrować algorytmem blowfish a od wersji 7.4.399 ma możliwość szyfrowania metodą blowfish2, która jest najtrudniejszą do złamania. Nie zaleca się używania szyfrowania za pomocą metody zip. Szyfrowanie tą metodą nie jest możliwe w edytorze Neovim.

W celu lepszego zabezpieczenia możemy użyć dodatkowo następujących komend

:set viminfo=
:set noswapfile noundofile nobackup
:edit tajny_plik.txt

Żeby sprawdzić aktualną metodę szyfrowania należy wydać polecenie

:set cm?

W pliku konfiguracyjnym .vimrc dodajemy

set cm=blowfish2

Szyfrowanie

Kiedy chcemy zaszyfrować plik należy uruchomić polecenie

:X
Enter encryption key: **********
Enter same key again: **********

i podać dwukrotnie hasło, następnie trzeba zapisać plik

:w

Plik zostanie zaszyfrowany, kiedy będziemy chcieli go ponownie edytować Vim sam poprosi o hasło do odszyfrowania pliku.

Inną metodą jest uruchomienie edytora z parametrem -x parametr ten należy użyć wyłącznie przy szyfrowaniu. Ponowne otworzenie pliku z parametrem -x wyświetli zaszyfrowany wcześniej plik chyba że podamy poprzednio ustalone hasło.

$ vim -x plik.txt

Deszyfrowanie plików

Odszyfrowanie pliku polega na wprowadzeniu komendy :X i podaniu dwukrotnie pustego hasła, czyli 2 x Enter, po tym należy zapisać plik :w

Jeśli zajdzie potrzeba wyrzucenia zawartości pliku na standardowe wyjście możemy skorzystać z metody którą znalazłem w wątku https://superuser.com/questions/1086598/print-decrypt-a-vim-encrypted-file skrypt odrobinę zmodyfikowałem na własne potrzeby

Skrypt ~/bin/cryptocat

#!/usr/bin/env bash

filename=$1

vim -R -c ":set key= | sav ${filename}.plain | q" -- ${filename} && cat ${filename}.plain && shred ${filename}.plain && rm ${filename}.plain

Date: 2020-10-24T19:20:49+02:00