前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

如何安全的传输文件(2)

qiguaw 2025-05-21 15:56:42 资源文章 4 ℃ 0 评论

大文件传输场景

交互过程图详解

采用非对称加密RSA+对称加密AES混合加密技术方案。

实现过程详述

用户B生成私钥和公钥

用户B属于linux系统,openssl版本可通过命令openssl version查看,如下图所示;

#生成2048的私钥B_private.pem并输入密码保护私钥

openssl genpkey -algorithm RSA -aes256 -pkeyopt rsa_keygen_bits:2048 -out B_private.pem

#基于B_private.pem生成公钥B_public.pem

openssl rsa -pubout -in B_private.pem -out B_public.pem

用户A生成对称密钥并加密大文件

用户A属于Windows系统,openssl版本如下图所示;

#生成随机32字节256位随机对称密钥文件

openssl rand -out aes256.bin 32

#采用aes-256-cbc对称加密算法对源文件1.txt进行加密并输出加密文件1.txt.enc

openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 ^

-in 1.txt ^

-out 1.txt.enc ^

-pass file:aes256.bin

用户A加密对称密钥文件

#利用用户B的公钥对对称密钥加密并输出加密文件aes256.bin.enc,如下图所示;

openssl pkeyutl -encrypt ^

-in aes256.bin ^

-pubin -inkey B_public.pem ^

-out aes256.bin.enc

用户B解密对称密钥文件并计算哈希值

#用户B的私钥对加密的对称密钥进行解密并输出解密的对称密钥aes256_decrypted.bin

openssl pkeyutl -decrypt \

-in aes256.bin.enc \

-inkey B_private.pem \

-out aes256_decrypted.bin

#计算解密的对称密钥文件的哈希值

openssl dgst -sha256 aes256_decrypted.bin

用户B解密大文件并计算哈希值

#用户B采用相同的对称加密算法并调用解密的【对称密钥】对大文件解密并输出解密文件1_decrypted.txt

openssl enc -d -aes-256-cbc -pbkdf2 -iter 100000 \

-in 1.txt.enc \

-out 1_decrypted.txt \

-pass file:aes256_decrypted.bin

#计算解密的大文件的哈希值

openssl dgst -sha256 1_decrypted.txt

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表