当前位置: 首页 > news >正文

OpenSSL 混合加密

openssl 中文网: https://www.openssl.net.cn/


目录

    • 对称加密
      • 特点
      • 常见算法
      • 案例(使用 AES)
    • 非对称加密
      • 特点
      • 常见算法
      • 案例(使用 RSA)
    • 混合加密
      • 场景
      • 加密(使用 AES)
      • 解密
    • 总结


对称加密

特点

  • 加密和解密使用相同的密钥;

  • 算法简单,速度快;

  • 适合大文件加密;

  • 安全性依赖于密钥保密性。

常见算法

  • AES(最常用);

  • DES、3DES(已过时);

  • Blowfish、ChaCha20 等。

案例(使用 AES)

测试文件

echo "这是一个机密内容,不能泄露。" > secret.txt

image-20250623201012825

加密文件

执行命令后,会提示输入密码(用于派生密钥)

openssl enc -aes-256-cbc -salt -in secret.txt -out secret.txt.enc# secret.txt 需要加密的文件
# secret.txt.enc 加密生成的结果文件

image-20250623201203034

解密文件

使用相同的密码解密

openssl enc -aes-256-cbc -d -in secret.txt.enc -out decrypted.txt# secret.txt.enc 已加密的文件
# decrypted.txt 解密生成的结果文件
# 查看解密后的结果文件(与我们的原文件secret.txt内容保持一致)

image-20250623201317683

非对称加密

特点

  • 使用一对密钥:公钥加密,私钥解密;
  • 适合安全通信和密钥分发;
  • 加解密速度较慢,不适合大文件;
  • 常用于数字签名、身份认证、SSL/TLS。

常见算法

  • RSA(最常见);

  • EC/DSA(椭圆曲线算法);

  • Ed25519(现代高效算法)。

案例(使用 RSA)

生成密钥对

# 私钥
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048# 公钥(公钥含于私钥,因此可通过私钥得到公钥)
openssl rsa -in private.pem -pubout -out public.pem

image-20250623201433408

使用公钥加密

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

使用私钥解密

openssl rsautl -decrypt -inkey private.pem -in secret.rsa.enc -out decrypted_rsa.txt

image-20250623202222489

混合加密

场景

在实际场景中,两者常结合使用(比如 HTTPS 就是这样做的):

  1. 用非对称加密传输对称密钥-安全传输密钥;

  2. 然后用对称加密大数据-快速加解密数据。

加密(使用 AES)

生成临时对称密钥(比如 256 位随机 key)

openssl rand -base64 32 > sym.key

使用对称密钥加密文件(用 AES)

openssl enc -aes-256-cbc -salt -in secret.txt -out secret.data.enc -pass file:./sym.key

使用公钥加密对称密钥

openssl rsautl -encrypt -inkey public.pem -pubin -in sym.key -out sym.key.enc

image-20250623203043099

解密

解密对称密钥(使用私钥)

openssl rsautl -decrypt -inkey private.pem -in sym.key.enc -out sym.key.dec

解密数据

openssl enc -aes-256-cbc -d -in secret.data.enc -out final_output.txt -pass file:./sym.key.dec

image-20250623203452148

总结

一句话:混合加密 = 安全传输(非对称) + 高速加解密(对称),是现代数据加密通信和文件加密的事实标准。

http://www.lqws.cn/news/497557.html

相关文章:

  • 企业级AI平台的能力架构与模块化规划
  • 大数据时代UI前端的变革:从静态展示到动态交互
  • TypeScript移动端导航工具实现
  • Arrays.asList和 List<String> list = new ArrayList<>();有什么区别
  • 飞算 JavaAI:重构 Java 开发范式的工程化实践
  • 可以把一套三维设计软件装在云服务器上5人同时并发使用吗
  • 通信网络编程3.0——JAVA
  • Deepoc大模型重构核工业智能基座:混合增强架构与安全增强决策技术​
  • Node.js 中的 JWT 认证:从生成到验证的完整指南
  • RPG38.角色受击
  • 配置@为src
  • React Native【实用教程】(含图标方案,常用第三库,动画,内置组件,内置Hooks,内置API,自定义组件,创建项目等)
  • Java并发编程中高效缓存设计的哲学
  • 实验九:RIPv2协议配置与分析
  • MySQL 8.x配置MGR高可用+ProxySQL读写分离(二):ProxySQL配置MySQL代理及读写分离
  • CRC3校验算法
  • Stable Diffusion 项目实战落地:AI绘画与文案创作的魔法 第一篇 ——让你的小说推文秒变视觉与故事双料爆款!
  • 零基础学习RabbitMQ(2)--Linux安装RabbitMQ
  • github常用插件
  • 基于SpringBoot + Vue 的网上拍卖系统
  • 使用AI开发招聘网站(100天AI编程实验)
  • C++ 第二阶段:继承与多态 - 第二节:虚函数与虚函数表
  • DataWhale-零基础络网爬虫技术(三、爬虫进阶技术)
  • 短期项目与长期目标如何同时兼顾
  • SpringCloud系列(32)--使用Hystrix进行全局服务降级
  • 基于分布式部分可观测马尔可夫决策过程与联邦强化学习的低空经济智能协同决策框架
  • 基于协议转换的 PROFIBUS DP 与 ETHERNET/IP 在石化生产中的协同运行实践
  • SwiftUI学习笔记day4: Lecture 4 | Stanford CS193p 2023
  • Lnmp和XunRuiCMS一键部署(Rocky linux)
  • Spring Boot 集成 Apache Kafka 实战指南