23 Декабрь, 2014

Как зашифровать большие файлы?

В этом нам поможет утилита openssl.

Публикую 2 варианта т.к. первый опубликованный оказался с недостатком. Зашифровать большие файлы можно, но вот расшифровать можно только файлы размером менее 1.5 Gb. Такой вот неприятный сюрприз.

Вариант 1 (только для файлов менее 1.5Gb)

Для начала генерируем нашу пару ключей которая делится на приватную и публичную части. Публичной можно только шифровать файлы. Расшифровывать их надо с применением приватного ключа.

openssl req -x509 -nodes -newkey rsa:2048 -keyout private.pem -out public.pem

Шифруем наши файлики:

openssl smime -encrypt -aes256 -in file.tar.gz -binary -outform DEM -out file.tar.gz.ssl public.pem

Расшифровываем:

openssl smime -decrypt -in file.tar.gz.ssl -binary -inform DEM -inkey private.pem -out file.tar.gz

На целевой машине где файлы будут шифроваться есть смысл держать только публичный ключ. А закрытую часть ключа хранить в особо секретном месте =)

Вариант 2 (с явными ограничениями не столкнулся)

Генерируем текстовый ключ:

openssl rand -base64 32 -out key.txt

Шифруем файлы:

openssl enc -aes-256-cbc -salt -in file.tar.gz -out file.tar.gz.enc -pass file:./key.txt

Дешифруем файлы:

openssl enc -d -aes-256-cbc -in file.tar.gz.enc -out file.tar.gz -pass file:./key.txt

В любом случае после шифрования файлов хотя бы пару раз попробуйте их обратно расшифровать. А то можно остаться с огромным архивом нужных файлов которые невозможно уже восстановить, но при этом вот они, совсем рядом.

Home