--- title: "TIP: шифрование и дешифрование файлов с использованием OpenSSL" title_bar: 1 icon: "sticky-note-o" tags: author: "digital-freak.ru" description: "Как зашифровать и расшифровать файл с помощью openssl" keywords: "OpenSSL,шифрование,дешифрование" --- | ## Небольшое предостережение Это может быть известно для многих из вас, но я решил записать эту короткую заметку для тех, кто не знает об этом. Я иногда работаю на системах FreeBSD или Linux, где GnuPG не установлен, и мне нужен быстрый способ шифрования и дешифрования файлов из командной строки. ## Введите OpenSSL [`openssl(1)`](https://www.freebsd.org/cgi/man.cgi?query=openssl) и его компаньон [`enc(1)`](https://www.freebsd.org/cgi/man.cgi?query=enc) обеспечивают механизм шифрования и дешифрования с использованием множества шифров. Пожалуйста, обратитесь к обеим страницам руководств, для понимания функций этих программ, а также для изучения доступных опций. ## Пример шифрования Не мудрствуя лукаво, давайте зашифруем файл _myfile_: ``` bash % openssl enc -bf -salt -in myfile -out myfile.enc -e -a ``` Обратите внимание, что мы используем кодировку base64 (`-a`). Это хорошая идея, особенно если вы будете передавать файл (по FTP, электронной почтой и т.д.). Вам будет предложено ввести "пароль для шифрования" (из которого будет получен ключ для шифрования вашего файла), и вам будет необходимо ввести его дважды. Зашифрованный файл в кодировке base64 будет находиться в _myfile.enc_. ## Пример дешифрования Получив зашифрованный файл (созданный с использованием точной команды из предыдущего примера), мы можем расшифровать его, используя следующую команду: ``` bash % openssl enc -bf -in myfile.enc -out myfile.dec -d -a ``` Вам будет предложено ввести тот же "пароль шифрования", который вы указали в предыдущем примере (не забывайте об этом). Затем дешифрованный файл будет помещен в _myfile.dec_. Вот и все. Вы можете подумать о создании псевдонима или функции оболочки или о небольшом сценарии для скрытия опций. [anomie](https://forums.freebsd.org/members/1137/), [Jun 1, 2009](https://forums.freebsd.org/threads/4473/)