3.2 KiB
3.2 KiB
#领域/Linux
#复盘/0
一句话描述
[openssl AES-256-CBC加密解密]
核心规范
空想不如行动,积累胜于苛求。 实践 > 沉淀 > 完美主义
实践不是盲目行动,而是带着“小目标、可验证“的方向试错,实践后必须沉淀(比如记录问题、总结规律),否则就是低水平重复。
实践大于沉淀,沉淀大于完美;完美是沉淀的终局方向,沉淀是实践的复盘产物;分域施策,避坑落地,始于行动,终于迭代。
三省沉淀法
- 达成了[文件加密解密______]目标
- 遇到了[命令频繁输入、加密算法繁多____]问题
- 下次改进[将常用加解密封装为脚本,先主要采用一种算法______]
个人理解
[对文件进行加解密______]
实践计划
#状态/待实践
- [编写加解密脚本____]
- [________]
- [________]
核心定义
openssl AES-256-CBC 对称加密,加解密用同一个密码 文件加密主流(速度快、适合大文件/多文件),256位密钥几乎无法暴力破解
| 参数 | 作用 |
|---|---|
| -aes-256-cbc | 指定加密算法 |
| -e | 解密模式 |
| -d | 加密模式 |
| -salt | 加盐加密(让相同密码生成不同的密文,提升安全性) |
| -pbkdf2 | 密钥派生算法(普通密码转为高强度密钥,openssl推荐) |
| -pass pass:密码 | 直接指定明文密码 |
| -in 文件名 | 指定输入文件 |
| -out 文件名 | 指定输出文件 |
| 加密时加了 -pbkdf2 和 -salt,解密时必须加 -pbkdf2,无需加 -salt |
示例
✅ 批量压缩加密
# tar czvf - 中的 - 会输出到管道
tar czvf - maixapp-cache/ | openssl enc -aes-256-cbc -salt -pbkdf2 -pass pass:123456 -out out.tar.gz.enc
✅ 批量解压解密
# tar czvf - 中的 - 会输出到管道
openssl enc -d -aes-256-cbc -in out.tar.gz.enc -pbkdf2 -pass pass:123456 | tar zxvf -
避坑点
⚠️ 避坑点1:解密时 tar 参数不匹配,导致解密失败/文件损坏 解决方案:加解密之前明确一下 tar 解压缩是否正常
⚠️ 避坑点2:加密时忘加 -salt,导致密码安全性较低 解决方案:加密必加-salt,解密无需加
进阶
机密后校验文件完整性
# 加密后生成校验值
md5sum out.tar.gz.enc > output.tar.gz.enc.md5
# 解密前校验(无输出则校验通过,有输出则文件损坏)
md5sum -c out.tar.gz.enc.md5
大文件加解密后台执行
nohup tar czvf - test.dat | openssl enc -aes-256-cbc -salt -pbkdf2 -out out.tar.gz.enc > encrypt.log 2>&1 &
ps -ef | grep openssl
编写自动化脚本,避免重复输命令
#!/bin/bash
if [ $1 = "encrypt" ]; then
加密命令
tar ... $2 | open ... -pass pass:$3 -out $4
elif [ $1 = "decrypt" ]; then
解密命令
openssl ... -in $2 ...
else
使用说明: ./run.sh [encrypt/decrypt] 目标 密码 加密文件
chmod +x run.sh
./run ...