TIP: шифрование и дешифрование файлов с использованием OpenSSL
Небольшое предостережение
Это может быть известно для многих из вас, но я решил записать эту короткую заметку для тех, кто не знает об этом. Я иногда работаю на системах FreeBSD или Linux, где GnuPG не установлен, и мне нужен быстрый способ шифрования и дешифрования файлов из командной строки.
Введите OpenSSL
openssl(1)
и его
компаньон enc(1)
обеспечивают механизм шифрования и дешифрования с использованием множества
шифров. Пожалуйста, обратитесь к обеим страницам руководств, для понимания
функций этих программ, а также для изучения доступных опций.
Пример шифрования
Не мудрствуя лукаво, давайте зашифруем файл myfile:
% openssl enc -bf -salt -in myfile -out myfile.enc -e -a
Обратите внимание, что мы используем кодировку base64 (-a
). Это хорошая
идея, особенно если вы будете передавать файл (по FTP, электронной почтой и
т.д.).
Вам будет предложено ввести "пароль для шифрования" (из которого будет получен ключ для шифрования вашего файла), и вам будет необходимо ввести его дважды. Зашифрованный файл в кодировке base64 будет находиться в myfile.enc.
Пример дешифрования
Получив зашифрованный файл (созданный с использованием точной команды из предыдущего примера), мы можем расшифровать его, используя следующую команду:
% openssl enc -bf -in myfile.enc -out myfile.dec -d -a
Вам будет предложено ввести тот же "пароль шифрования", который вы указали в предыдущем примере (не забывайте об этом). Затем дешифрованный файл будет помещен в myfile.dec.
Вот и все. Вы можете подумать о создании псевдонима или функции оболочки или о небольшом сценарии для скрытия опций.