Як я можу зашифрувати файл?


11

Я хотів би завантажити деякі файли зі свого сервера на свій ноутбук, і річ у тому, що я хочу, щоб це спілкування було максимально захищеним та безпечним. Отже, я далеко не використовував VPN, таким чином я перенаправляю весь інтернет-трафік свого ноутбука через мій сервер. Крім того, я спробував надіслати файл за допомогою ftp та одночасно спостерігаючи за Wireshark. Здається, комунікація зашифрована, проте я хотів би також зашифрувати сам файл (як захист другого кроку або щось подібне).

Мій сервер - це RasPi, на якому працює Raspbian. Мій ноутбук - Macbook Air.

По-перше, я хочу зашифрувати файл у своєму Ras Pi, а по-друге завантажити його. Як я можу це зробити?


1
gpgможе шифрувати файли, або асиметрично ( з використанням відкритого ключа для шифрування і закритий ключ для дешифрування) або симетрично (використовуючи один і той же ключ / пароль для шифрування і дешифрування: dewinter.com/gnupg_howto/english/GPGMiniHowto.html
Мартін фон Wittich

Чому б не використовувати такий протокол, як HTTPS, SFTP або FTPS? Якщо комунікація зашифрована, додавання другого шару шифрування не принесе вам нічого.
Жил "ТАК - перестань бути злим"

Відповіді:


22

Ви можете використовувати opensslдля шифрування та дешифрування за допомогою ключових симетричних шифрів. Наприклад:

openssl enc -in foo.bar \
    -aes-256-cbc \
    -pass stdin > foo.bar.enc

Це шифрує foo.barдо foo.bar.enc(ви можете використовувати -outперемикач , щоб вказати вихідний файл, замість того , щоб перенаправляти стандартний висновок , як зазначено вище) з використанням 256 бітного AES шифру в CBC режимі. Доступні різні інші шифри (див. man enc). Потім команда чекатиме введення пароля і використовувати його для створення відповідного ключа. Ви можете бачити ключ -pабо використовувати свій власний замість пароля -K(насправді це трохи складніше, ніж це, оскільки потрібен вектор або джерело ініціалізації , див. man encЩе раз). Якщо ви використовуєте пароль, ви можете використовувати той самий пароль для розшифровки, вам не потрібно дивитись або зберігати створений ключ.

Щоб розшифрувати це:

openssl enc -in foo.bar.enc \
    -d -aes-256-cbc \
    -pass stdin > foo.bar

Зауважте -d. Дивіться також man openssl.


Крім того, ви можете вивести результат у файл, використовуючи параметр, -out FILENAMEа не піппінг у висновку.
crazyGuy

4

Для разових випадків ви можете зашифрувати за допомогою zip та пароля. Хоча це не так сильно, як основні методи (оскільки важко мати хороший пароль), мабуть, це непогані спеціальні ситуації.

Командний рядок виглядає приблизно так:

zip -r -0 -e encrypted_file.zip /path/to/files

-r to recurse directories.
-e to encrypt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.