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.

Вот и все. Вы можете подумать о создании псевдонима или функции оболочки или о небольшом сценарии для скрытия опций.

anomie, Jun 1, 2009