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 |