通过命令行在 Mac 上加密和解密文件的简单内置方法?

cod*_*ing 47 mac security encryption command-line

是否有任何内置的命令行工具可以加密和解密文本文件(并为其提供某种密码)。

Den*_*nis 67

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
Run Code Online (Sandbox Code Playgroud)

(复制自OpenSSL Command-Line HOWTO: How do I simple encrypt a file?

这些命令使用带有密码块链接 (CBC) 的 256 位 AES 加密,这与目前的安全性差不多。

  • 一旦您执行了上述任何“openssl”命令,它就会要求您“输入 aes-256-cbc 加密密码”。 (4认同)
  • @codecompleting 或者指定`-pass pass:MYSECRETPASSWORD`,虽然密码当然不会对`ps`等隐藏。 (2认同)
  • @Wildcard 是的,盐(实际上,初始化向量)与加密文件中的密文一起存储。 (2认同)
  • @KolobCanyon 加密永远不会有损。根据定义,它需要能够解密密文以恢复原始明文。只是不要忘记钥匙。 (2认同)

小智 8

我为此构建了一个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
Run Code Online (Sandbox Code Playgroud)

只需将其保存在 issue chmod +x 文件中的文本文件中即可使其可执行。之后使用 ./filename --help 获取信息。

  • 不必要地使用 `-a` 会不必要地使输出文件膨胀。 (2认同)

Dan*_*eck 6

Mac OS X 能够创建加密的容器文件(类似于例如 Truecrypt),该文件可以随着放入其中的数据量而有选择地增长。使用磁盘工具来做到这一点。

在“磁盘工具”中,选择“文件”»“新建”»“空白磁盘映像...”,使用其中一种稀疏图像格式。选择 AES-128 或 AES-256 作为加密。


从命令行,可以通过该hdiutil程序使用相同的功能。