如何加密文件?


11

我想从服务器上将一些文件下载到笔记本电脑上,问题是我希望这种通信尽可能隐蔽且安全。因此,到目前为止,我还是使用VPN,因此我通过服务器将笔记本电脑的整个Internet流量重定向。另外,我尝试使用ftp发送文件并同时观察Wireshark。通信似乎已加密,但是我也想对文件本身进行加密(作为第二步安全措施或类似的措施)。

我的服务器是运行Raspbian的RasPi。我的笔记本电脑是Macbook Air。

我首先要在Ras Pi中加密文件,然后再下载。我怎样才能做到这一点?


1
gpg可以非对称地(使用公共密钥进行加密,并使用私钥进行解密)或对称(使用相同的密钥/密码进行加密和解密)对文件进行加密:dewinter.com/gnupg_howto/english/GPGMiniHowto.html
Martin von Wittich

为什么不使用HTTPS,SFTP或FTPS之类的协议?如果通信是加密的,则添加第二层加密不会为您带来任何好处。
吉尔斯(Gilles)“所以,别再邪恶了”

Answers:


22

您可以使用openssl基于密钥的对称密码来加密和解密。例如:

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

这将以CBC模式使用256位AES密码加密foo.barfoo.bar.enc(您可以使用-out开关指定输出文件,而不是如上所述的重定向stdout)。还有其他多种可用的密码(请参阅参考资料)。然后,该命令将等待您输入密码,并使用该密码生成适当的密钥。您可以将密钥与一起使用或用自己的密钥代替(实际上,由于需要初始化向量或源,因此它稍微复杂一些,请再次参见)。如果使用密码,则可以使用相同的密码进行解密,而无需查看或保留生成的密钥。man enc-p-Kman enc

解密:

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

请注意-d。另请参阅man openssl


同样,您可以使用选项-out FILENAME而不是管道将结果输出到文件中。
crazyGuy

4

对于一次性情况,您可以使用邮政编码和密码进行加密。尽管不如基于密钥的技术那么强(因为很难拥有一个好的密码),但它可能是临时的。

命令行如下所示:

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

-r to recurse directories.
-e to encrypt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.