温馨提示×

怎样用linux openssl加密文件

小樊
42
2026-10-10 11:10:10
栏目: 云计算

在 Linux 下使用 OpenSSL 加密/解密文件,常见有两种方式:对称加密(如 AES) 和 非对称加密(RSA)。日常最常用的是 对称加密。

下面按使用场景说明。


一、使用 OpenSSL 对称加密(最常用)

1️⃣ 加密文件(AES-256-CBC)

openssl enc -aes-256-cbc -salt -in 原文件 -out 加密文件.enc

示例:

openssl enc -aes-256-cbc -salt -in test.txt -out test.txt.enc

执行后会提示输入密码。

✅ 参数说明:

  • enc:加密命令
  • -aes-256-cbc:加密算法
  • -salt:增加安全性(推荐)
  • -in:输入文件
  • -out:输出文件

2️⃣ 解密文件

openssl enc -d -aes-256-cbc -in 加密文件.enc -out 解密文件

示例:

openssl enc -d -aes-256-cbc -in test.txt.enc -out test.txt

3️⃣ 非交互式(脚本中使用)

openssl enc -aes-256-cbc -salt \
  -in file.txt \
  -out file.enc \
  -pass pass:你的密码

⚠️ 注意:命令行密码可能被 history 或 ps 看到,不推荐生产环境使用


二、使用 Base64(便于传输)

openssl enc -aes-256-cbc -salt -a -in file.txt -out file.enc
  • -a:输出 Base64 格式

解密:

openssl enc -d -aes-256-cbc -a -in file.enc -out file.txt

三、使用 RSA 非对称加密(适合密钥交换)

1️⃣ 生成 RSA 密钥

openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -pubout -out public.pem

2️⃣ 用公钥加密(仅小文件)

openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.enc

3️⃣ 用私钥解密

openssl rsautl -decrypt -inkey private.pem -in file.enc -out file.txt

⚠️ RSA 不能直接加密大文件,通常只用来加密 AES 密钥


四、推荐的安全做法(混合加密)

  1. 用 AES 加密文件
  2. 用 RSA 加密 AES 密码
  3. 分发:
    • 加密文件
    • 加密后的密码

五、常见问题

❓ 解密提示 bad magic number

  • 文件损坏
  • 密码错误
  • 用了不同算法

❓ 文件太大 RSA 报错

  • RSA 只适合小数据
  • 用 AES 加密文件

如果你告诉我:

  • 是 命令行使用 还是 写脚本
  • 是否需要 跨机器传输
  • 是否要 自动化

我可以给你更合适的示例。

0 踩