是否有任何内置命令行工具可以加密和解密文本文件(并为其提供某种密码)。
答案1
openssl
预安装在 Mac OS X 上。
您可以使用以下命令:
# encrypt file.txt to file.enc using 256-bit AES in CBC mode
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc
# the same, only the output is base64 encoded for, e.g., e-mail
openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc
# decrypt binary file.enc
openssl enc -d -aes-256-cbc -in file.enc -out file.txt
# decrypt base64-encoded version
openssl enc -d -aes-256-cbc -a -in file.enc -out file.txt
(摘自OpenSSL 命令行操作方法:如何简单地加密文件?)
系统将提示您输入密码。您也可以使用-pass pass:mySillyPassword
或-pass file:/path/to/secret/password.txt
这些命令使用带有密码块链接 (CBC) 的 256 位 AES 加密,这是目前最安全的加密方式。
答案2
Mac OS X 能够创建加密容器文件(类似于 Truecrypt),这些文件可以随着其中的数据量而增长。使用磁盘工具去做这个。
在磁盘工具, 选择文件»新建»空白磁盘映像…与其中一个疏图像格式。选择 AES-128 或 AES-256 作为加密。
从命令行,可以通过程序获得相同的功能hdiutil
。
答案3
我为此编写了一个 shell 脚本。你可以在 Mac 或 Linux 上使用它。
#!/bin/bash
#encrypt files with aes-256-cbc cipher using openssl
#encrypt files
if [ $1 == "-e" ];
then
if [ -f "$2" ];
then
openssl aes-256-cbc -a -e -salt -in "$2" -out "$2.aes"
else
echo "This file does not exist!"
fi
#decrypt files
elif [ $1 == "-d" ];
then
if [ -f "$2" ];
then
openssl aes-256-cbc -a -d -salt -in "$2" -out "$2.decrypt"
else
echo "This file does not exist!"
fi
#show help
elif [ $1 == "--help" ];
then
echo "This software uses openssl for encrypting files with the aes-256-cbc cipher"
echo "Usage for encrypting: ./encrypt -e [file]"
echo "Usage for decrypting: ./encrypt -d [file]"
else
echo "This action does not exist!"
echo "Use ./encrypt --help to show help."
fi
只需将其保存在问题 chmod +x 文件中的文本文件中以使其可执行。之后使用 ./filename --help 获取信息。