Большинство пользователей Linux знают vim как текстовый редактор, который произошел от vi. Он также может работать как инструмент для шифрования текстовых файлов. В этой статье мы рассмотрим, как это делается и как выполняется обратный процесс- дешифрование.
Каждый раз, когда у вас есть текстовый файл в системе Linux, который вы хотите сохранить в тайне, независимо от привилегий, которые могут иметь другие пользователи с учетными записями в системе, вы можете прибегнуть к шифрованию. Один из простых способов сделать это-использовать функцию, встроенную в редактор vim. Вам придется создать пароль, который вам затем нужно будет запомнить или сохранить в «сейфе». Имя файла не будет изменено никаким образом, и содержимое файла может быть восстановлено почти так же, как оно было зашифровано.
Для начала предположим, что у нас есть файл, который начинается так:
$ head -3 password
Я хочу поместить свой самый страшный секрет в текстовый файл в моей системе Linux. Хотя это, вероятно, не обычная практика, я не уверен, что могу кому-то доверять. Но Linux? Это совсем другая история! Итак, начнем …
Теперь, не желая рисковать своим самым страшным секретом перед другими пользователями, вы используете vim с опцией -x (шифрование).
$ vim -x password
Редактор vim немедленно запросит ключ шифрования (пароль). Вам придется ввести его дважды. Обратите внимание, что пароль не будет отображаться при его вводе. Вместо этого каждый символ будет отображаться в виде звездочки.
Enter encryption key: *********
Enter same key again: *********
После того, как vim откроет ваш файл, он будет выглядеть как обычно, и вы сможете продолжить редактирование или добавление деталей в свой самый страшный секрет, если захотите, или сможете просто перейти к сохранению файла в зашифрованном виде.
Чтобы сохранить зашифрованный контент, просто сохраните файл, как обычно в vim.
:wq
Любой, кто затем попытается просмотреть файл, скорее всего, увидит что-то вроде этого:
VimCrypt~036▒!y)K▒▒i▒▒▒▒▒{▒z▒▒▒D▒:▒▒7▒\▒蝇Xd▒#n▒▒▒ڎq4▒▒▒^9▒|▒▒▒+A▒]j▒▒▒a▒N▒▒
▒▒▒▒▒▒}▒▒&f▒▒A3▒Wt[▒T\:с▒أny▒*▒▒}▒▒▒▒▒"▒▒▒ڈ^▒C▒E▒W▒▒v▒pV▒_▒Cj͞.EA▒▒▒#▒ex▒:▒K▒▒`P
▒u▒ ▒▒yhK▒X▒▒(W▒s(RY▒A▒
▒▒l9▒▒▒_▒▒▒▒▒I▒▒Lk▒ ▒k▒▒▒▒=▒5G▒▒▒t▒2Ӣ▒gF▒ 3▒Iq▒C▒▒▒▒OZ[▒l▒_▒~▒▒z
Когда вы будете готовы снова просмотреть файл или отредактировать его, используйте команду vim и введите ваш пароль при появлении запроса.
$ vim password
Need encryption key for "password"
Enter encryption key: *********
Содержимое файла снова должно отображаться в виде обычного текста.
Завершите сеанс vim обычным способом :wq, и файл останется зашифрованным.
Если в какой-то момент вы решили поделиться содержимым своего файла с другими, вы можете отменить шифрование файла так же просто, как и при шифровании. Сначала используйте команду vim -X. Обратите внимание на использование заглавной буквы X на этот раз:
$ vim -X password
Need encryption key for "password"
Enter encryption key: *********
После этого вы увидите исходный текст.
Затем введите :X, но, когда будет предложено снова ввести ключ шифрования (дважды), просто нажмите клавишу Enter:
Enter encryption key:
Enter same key again:
Используйте :wq, чтобы снова сохранить файл. После этого ваш файл вернется в первоначальный вид – в незашифрованном виде.
$ head -3 password
Я хочу поместить свой самый страшный секрет в текстовый файл в моей системе Linux. Хотя это, вероятно, не обычная практика, я не уверен, что могу кому-то доверять. Но Linux? Это совсем другая история! Итак, начнем …
Заключение
Для шифрования файлов доступны многие другие инструменты, но для этого метода не требуется ничего, кроме vim. Чтобы определить, зашифрован ли файл с помощью vim, вы можете запустить команду file. В приведенном ниже примере мы видим, что эта команда сообщает вам, когда файл зашифрован, а когда нет.
$ file password
password: Vim encrypted file data
$ file password
password: UTF-8 Unicode text