系统管理指南:安全性服务

Procedure如何加密和解密文件

加密文件时,不会删除或更改原始文件。输出文件将被加密。

有关 encrypt 命令的常见错误的解决方案,请参见示例后面的部分。

  1. 创建适当长度的对称密钥。

    您有两种选择。可以提供将根据其生成密钥的 passphrase(口令短语)。或者,可以提供密钥。

    • 如果提供口令短语,则必须存储或记住该口令短语。如果您在线存储口令短语,则只有您才可以读取该口令短语文件。

    • 如果提供密钥,则它必须是对应于机制的正确大小。有关过程,请参见如何生成对称密钥

  2. 加密文件。

    encrypt 命令提供密钥并使用对称密钥算法。


    % encrypt -a algorithm  [ -k keyfile ] -i input-file -o output-file
    
    -a algorithm

    用于加密文件的算法。 键入与 encrypt -l 命令的输出中显示的算法相同的算法。

    -k keyfile

    包含算法所指定长度的密钥的文件。 每种算法的密钥长度(以位为单位)列在 encrypt -l 命令的输出中。

    -i input-file

    要加密的输入文件。命令不会更改此文件。

    -o output-file

    加密格式的输入文件的输出文件。


示例 14–10 使用 AES 和口令短语进行加密和解密

在以下示例中,将使用 AES 算法加密文件。密钥根据口令短语生成。如果口令短语存储在某个文件中,则除了该用户之外,其他任何人都不能读取该文件。


% encrypt -a aes -i ticket.to.ride -o ~/enc/e.ticket.to.ride

Enter key: <键入口令短语>

输入文件 ticket.to.ride 仍然以其原始格式存在。

要解密输出文件,用户应使用加密该文件的相同口令短语和加密机制。


% decrypt -a aes -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride

Enter key: <键入口令短语>


示例 14–11 使用 AES 和密钥文件进行加密和解密

在以下示例中,将使用 AES 算法加密文件。AES 机制使用 128 位(16 字节)的密钥。


% encrypt -a aes -k ~/keyf/05.07.aes16 \

-i ticket.to.ride -o ~/enc/e.ticket.to.ride 

输入文件 ticket.to.ride 仍然以其原始格式存在。

要解密输出文件,用户应使用加密该文件的相同密钥和加密机制。


% decrypt -a aes -k ~/keyf/05.07.aes16  \

-i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride


示例 14–12 使用 ARCFOUR 和密钥文件进行加密和解密

在以下示例中,使用 ARCFOUR 算法加密文件。ARCFOUR 算法接受 8 位(1 字节)、64 位(8 字节)或 128 位(16 字节)的密钥。


% encrypt -a arcfour -i personal.txt \

-k ~/keyf/05.07.rc4.8 -o ~/enc/e.personal.txt

要解密输出文件,用户应使用加密该文件的相同密钥和加密机制。


% decrypt -a arcfour -i ~/enc/e.personal.txt \

-k ~/keyf/05.07.rc4.8 -o ~/personal.txt


示例 14–13 使用 3DES 和密钥文件进行加密和解密

在以下示例中,将使用 3DES 算法加密文件。3DES 算法要求 192 位(24 字节)的密钥。


% encrypt -a 3des -k ~/keyf/05.07.des24 \

-i ~/personal2.txt -o ~/enc/e.personal2.txt

要解密输出文件,用户应使用加密该文件的相同密钥和加密机制。


% decrypt -a 3des -k ~/keyf/05.07.des24 \

-i ~/enc/e.personal2.txt -o ~/personal2.txt

故障排除

以下消息说明,所使用的算法不接受提供给 encrypt 命令的密钥。

如果所提供的密钥不满足算法要求,则必须提供正确的密钥。