Главная » Компьютерные сети » Использование редактора vim в Linux для быстрого шифрования и дешифрования файлов

Использование редактора vim в Linux для быстрого шифрования и дешифрования файлов

Использование редактора vim в Linux для быстрого шифрования и дешифрования файлов

Большинство пользователей 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