插件窝 干货文章 如何进行OpenSSL基础中的加密及解密

如何进行OpenSSL基础中的加密及解密

OpenSSL 加密 使用 解密 147    来源:    2025-04-22

OpenSSL 基础加密与解密操作指南

OpenSSL 是一个强大的开源加密工具包,提供了多种加密算法的实现。以下是使用 OpenSSL 进行基础加密和解密操作的指南。

对称加密/解密

对称加密使用相同的密钥进行加密和解密。

AES 加密示例

# 使用 AES-256-CBC 加密文件
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc

# 解密文件
openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt

常用参数: - -salt:添加随机盐值增强安全性 - -in:输入文件 - -out:输出文件 - -k-pass:指定密码(不建议在命令行直接使用,会留在历史记录中)

其他对称算法

# 使用 3DES
openssl enc -des3 -salt -in plaintext.txt -out encrypted.des3

# 使用 Camellia
openssl enc -camellia-256-cbc -salt -in plaintext.txt -out encrypted.camellia

非对称加密/解密

非对称加密使用公钥加密,私钥解密。

生成密钥对

# 生成 RSA 私钥 (2048位)
openssl genrsa -out private.key 2048

# 从私钥提取公钥
openssl rsa -in private.key -pubout -out public.key

加密/解密操作

# 使用公钥加密
openssl rsautl -encrypt -inkey public.key -pubin -in plaintext.txt -out encrypted.rsa

# 使用私钥解密
openssl rsautl -decrypt -inkey private.key -in encrypted.rsa -out decrypted.txt

哈希计算

# SHA-256 哈希
openssl dgst -sha256 file.txt

# MD5 哈希 (不推荐用于安全用途)
openssl dgst -md5 file.txt

数字签名

# 创建签名
openssl dgst -sha256 -sign private.key -out signature.bin file.txt

# 验证签名
openssl dgst -sha256 -verify public.key -signature signature.bin file.txt

证书相关操作

# 生成自签名证书
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

# 查看证书信息
openssl x509 -in cert.pem -text -noout

安全建议

  1. 对于对称加密,使用强密码和足够长的密钥(推荐 AES-256)
  2. 避免在命令行直接使用 -k 参数传递密码,可以使用 -pass 参数从文件或环境变量获取
  3. 定期更新密钥和证书
  4. 对于生产环境,考虑使用更专业的密钥管理系统

进阶用法

# 使用 PBKDF2 密钥派生函数
openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -salt -in file.txt -out file.enc

# 加密并 Base64 编码输出
openssl enc -aes-256-cbc -salt -a -in plaintext.txt -out encrypted.b64

OpenSSL 的功能非常丰富,以上只是基础加密解密操作的简介。根据具体需求,可以进一步探索其更高级的功能。