文件传输加密(原理)
文章目录
背景介绍
一般的文件传输都是通过用户将文件上传到服务器,然后服务器传输到数据库中保存,当再次需要查阅该文件时只需要在数据库中查找,就可以将文件返回给查阅用户,下面是一般文件上传流程示意图:
但在此过程中,用户的文件容易受到窃听、篡改等攻击,如果是秘密文件受到攻击后造成的损失将难以预料,不单单是文件其他数据也是如此。目前信息时代数据就等于黄金,但是只要你连接网络,黑客攻击无时无刻不存在,如何保护数据安全就是首要考虑的任务,由此诞生出网络的数据加密方法。现如今数据在网络之间的加密传输变成重中之重。目前常用的加密方法由对称加密算法、非对称加密算法等。这些算法在网络文件传输中被广泛运用,本文就以这些加密算法来探讨如何对传输的文件进行加密保护。
加密算法
1、对称加密算法(Symmetric-key algorithm):对称加密算法是一种高效且简单的加密技术,其加密和解密过程使用相同的密钥。发送方使用密钥将明文转换为密文,接收方则使用相同的密钥解密密文以获取原始明文数据。尽管其操作简单直观,但对称加密的安全性高度依赖于密钥的安全管理。这种算法在数据传输和存储等各种场景中广泛应用,但密钥的安全性仍然是关键所在。
常见的对称加密算法有AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia。
2、非对称加密算法(Asymmetric Encryption Algorithm):非对称加密算法(也称为公钥加密算法)是一种安全的加密技术,使用一对密钥来加密和解密数据,分别称为公钥和私钥。发送方使用接收方的公钥加密数据,而接收方使用其私钥解密数据。这种算法具有较高的安全性,因为加密和解密使用不同的密钥,同时简化了密钥管理,因为只需保密私钥即可。虽然计算成本较高,但非对称加密算法在数据传输和数字签名等领域广泛应用,为信息安全提供了重要保障。
常见的非对称加密算法有:RSA、ElGamal、Rabin(RSA的特例)、DSA、ECDSA。使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开秘钥加密算法。
运用算法(非对称加密算法)
1.所有我们能使用这些算法对文件进行加密操作,首先用户选择将文件上传到web端这个过程一般是点击按钮选择文件阶段所以无需加密,当用户选择文件后,web服务器端马上向后端服务器请求公钥,服务器接收到请求后将公钥发送给前端
2.然后前端web服务器接收到公钥之后对数据进行加密操作,加密完成后将文件发送到后端服务器,此即完成了文件的加密
但是真的就如此简单吗,我们看非对称加密算法的过程便可知,非对称加密算法计算成本较高,因此不适合对文件进行加密因为文件对于该算法来说太大了,会出现加密报错。非对称加密算法适用于消息数据收发,密码传输加密或者较小文件等。那么我们传输大文件或者一般文件怎么办?---->对称加密算法就非常适合,但是传输不安全----->密钥一样,密钥管理困难,密钥分发困难,密钥传输容易遭受攻击。 因此解决对称加密密钥传输就可以用对称加密进行文件传输了。
所以我们想到了使用非对称加密算法加密对称加密算法的密钥,对称加密算法加密文件,然后将加密后的文件和密钥同时传送到后端,后端使用私钥对对称加密算法密钥进行解密后,使用解密后的密钥对文件进行解密即可,这样即解决了文件不适合非对称加密算法加密,对称加密算法不安全的问题
算法进阶运用(对称加密+非对称加密算法)
第一步还是和之前一样,文件上传,然后web服务器向后端服务器请求公钥,后端服务器发送公钥文件
然后web端生成密钥(对称加密密钥),将文件进行对称加密,然后使用公钥对生成的密钥进行加密,然后将新的文件流(加密文件+加密密钥)传输到后端
这样就完成了整个文件的加密传输流程,且能够安全的传输大文件
在整个传输流程中,如果担心文件完整性被破坏,也可以引入MD5检测,MD5检测是一种无密钥检测,可以进行文件的完整性检测,此外还可以进行更加深入的加密,比如将传输流换成HTTPS传输也可以更加巩固传输加密。
标签:文件,公钥,加密,文件传输,密钥,非对称,加密算法 From: https://blog.csdn.net/m0_63224448/article/details/137248801