news 2026/4/18 8:07:05

利用 OpenSSL 进行国际算法加密通信实验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
利用 OpenSSL 进行国际算法加密通信实验

一、实验前置准备

系统版本:OpenEuler 22.04

实验平台:天枢一体化虚拟仿真平台

(1). OpenSSL安装与版本验证

openEuler默认预装OpenSSL,但需确认完整性和版本(推荐1.1.1及以上,支持主流国际算法):

# 检查OpenSSL版本
openssl version

# 若未安装/版本过低,执行安装(openEuler用dnf包管理器)
sudo dnf install openssl openssl-devel -y

# 再次验证安装成功
openssl version

正常输出示例:OpenSSL 1.1.1k FIPS 25 Mar 2021(openEuler 22.03 LTS默认版本)。

二、实验1:对称加密(AES-256-CBC)- 文件加解密

AES是国际标准对称加密算法(NIST认证),CBC是常用的分组加密模式,适合小数据加密,也是加密通信的基础。

实验步骤

1创建测试文件(用于验证加解密效果):

echo "OpenEuler OpenSSL AES Encryption Test" > test.txt
cat test.txt # 查看原文件内容

2)生成AES密钥和初始化向量(IV):

AES-256需要256位(32字节)密钥,CBC模式要求IV长度等于分组长度(AES分组为128位/16字节):

# 生成256位AES密钥(16进制格式)
openssl rand -hex 32 > aes_key.txt
# 生成128位IV(16进制格式)
openssl rand -hex 16 > aes_iv.txt

# 查看生成的密钥/IV(可选)
cat aes_key.txt
cat aes_iv.txt

3)AES-256-CBC加密文件:

openssl enc -aes-256-cbc -in test.txt -out test_encrypted.enc -K $(cat aes_key.txt) -iv $(cat aes_iv.txt)

命令解释:

  • enc:OpenSSL加密/解密核心指令;
  • -aes-256-cbc:指定算法为AES-256-CBC(国际标准对称算法);
  • -in/-out:输入/输出文件路径;
  • -K:指定16进制格式的密钥(区分大小写,需与生成的一致);
  • -iv:指定16进制格式的初始化向量。

4解密验证:

openssl enc -d -aes-256-cbc -in test_encrypted.enc -out test_decrypted.txt -K $(cat aes_key.txt) -iv $(cat aes_iv.txt)

关键参数:-d表示解密模式。

5验证结果:

cat test_decrypted.txt

输出应与原文件test.txt完全一致,说明AES加解密成功。

三、实验2:非对称加密(RSA)- 密钥交换与签名验签

RSA是国际标准非对称加密算法,用于加密通信的密钥交换(如TLS握手)和数字签名(防篡改/伪造),实验步骤如下:

实验步骤

1生成RSA私钥(2048位,安全与性能平衡):

openssl genrsa -out rsa_private.key 2048

解释:genrsa生成RSA私钥,2048位是主流安全长度(4096位更安全但速度慢)。

2从私钥提取公钥:

openssl rsa -in rsa_private.key -pubout -out rsa_public.key

解释:-pubout指定输出公钥(公钥可公开,私钥需严格保密)。

3公钥加密小数据(RSA适合加密密钥/短数据):

openssl rsautl -encrypt -inkey rsa_public.key -pubin -in test.txt -out test_rsa_encrypted.enc

解释:

  • rsautl:RSA加解密工具;
  • -encrypt:加密模式;
  • -pubin:表示输入的是公钥文件。

4私钥解密验证:

openssl rsautl -decrypt -inkey rsa_private.key -in test_rsa_encrypted.enc -out test_rsa_decrypted.txt

验证:cat test_rsa_decrypted.txt应与原文件内容一致。

5扩展:数字签名与验签(通信防篡改):

# 用私钥生成SHA256签名
openssl dgst -sha256 -sign rsa_private.key -out test.sig test.txt

# 用公钥验签(验证文件未被篡改)
openssl dgst -sha256 -verify rsa_public.key -signature test.sig test.txt

验签成功输出:Verified OK;若修改test.txt后验签,会输出Verification Failure

四、实验3:TLS加密通信(客户端-服务器模拟)

这是最贴近实际场景的加密通信实验,OpenSSL的s_server/s_client模拟基于RSA+AES的TLS加密通信(国际算法组合)。

实验步骤

1生成服务器自签名证书(实验用):


openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes

命令解释:

  • -x509:生成自签名证书(无需CA认证,仅实验用);
  • -newkey rsa:2048:同时生成2048位RSA私钥;
  • -nodes:私钥不加密(实验方便,生产环境需加密)。

执行后会提示填写证书信息(国家、省份、组织等),Common Name(CN)建议填[127.0.0.1](127.0.0.1)(服务器本地IP),其余可随意填写。

2启动TLS服务器(监听12345端口):


openssl s_server -key server.key -cert server.crt -port 12345 -tls1_2

解释:

  • -tls1_2:指定TLS 1.2版本(主流安全版本,支持AES/RSA等国际算法);
  • 启动后服务器会输出ACCEPT,等待客户端连接。

3启动TLS客户端(新终端执行):

保持服务器终端运行,打开新终端执行:


openssl s_client -connect 127.0.0.1:12345 -tls1_2

连接成功后,客户端会输出TLS握手信息,包括加密套件(如ECDHE-RSA-AES256-GCM-SHA384,包含RSA和AES国际算法)。

4测试加密通信:

  • 在客户端终端输入任意文字(如Hello OpenEuler TLS Encryption!),按回车;
  • 服务器终端会收到该文字;在服务器终端输入文字,客户端也会收到;
  • 所有传输内容均通过TLS加密,而非明文(可通过抓包工具验证,如wireshark)。

5停止实验:

分别在客户端/服务器终端按Ctrl+C退出即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/9 7:06:50

YimMenu终极指南:从零开始快速精通GTA5游戏增强工具

YimMenu终极指南:从零开始快速精通GTA5游戏增强工具 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMen…

作者头像 李华
网站建设 2026/3/15 2:26:28

FlashAttention与新一代硬件架构融合:解锁大模型训练新高度

FlashAttention与新一代硬件架构融合:解锁大模型训练新高度 【免费下载链接】flash-attention 项目地址: https://gitcode.com/gh_mirrors/fla/flash-attention 在人工智能快速发展的今天,Transformer架构已成为大语言模型的核心基础。然而&…

作者头像 李华
网站建设 2026/4/18 8:05:15

ggsankey数据流可视化:从数据洞察到商业决策的完整指南

ggsankey数据流可视化:从数据洞察到商业决策的完整指南 【免费下载链接】ggsankey Make sankey, alluvial and sankey bump plots in ggplot 项目地址: https://gitcode.com/gh_mirrors/gg/ggsankey 在当今数据驱动的商业环境中,如何清晰展示复杂…

作者头像 李华
网站建设 2026/4/17 18:40:24

Magistral-Small-1.2:24B多模态推理实战指南

Magistral-Small-1.2:24B多模态推理实战指南 【免费下载链接】Magistral-Small-2509-FP8-torchao 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Magistral-Small-2509-FP8-torchao 导语:Mistral AI推出的Magistral-Small-1.2模型以240亿…

作者头像 李华
网站建设 2026/4/8 15:01:57

打造个人专属数字书房:Open Library一站式知识管理解决方案

打造个人专属数字书房:Open Library一站式知识管理解决方案 【免费下载链接】openlibrary One webpage for every book ever published! 项目地址: https://gitcode.com/gh_mirrors/op/openlibrary 在信息爆炸的时代,如何高效管理个人知识资源成为…

作者头像 李华
网站建设 2026/4/18 2:40:56

BiliTools终极指南:5分钟掌握B站视频下载与AI智能分析

BiliTools终极指南:5分钟掌握B站视频下载与AI智能分析 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bili…

作者头像 李华