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