RSA和AES加密混合文件传输系统
环境要求:
1、java1.8
2、socket
3、mysql
4、io流
5、swing
登录界面
客户端登录:
1.用户注册的账号保存到数据库中,用户的密码经过md5后保存到数据库中。
2.用户输入正确的账号和密码可以进入
“
功能介绍
”
客户端
客户端加密传输文件到服务器,服务器接受文件并解密:服务器首先要生成一对RSA公私钥,并将RSA公钥发给客户端
从客户端的角度:
- 用户自身随机产生一个AES密钥,用AES密钥加密要传输的文件,得到密文1
2.用户收到服务器发送的RSA公钥,用RSA公钥加密AES密钥,得到密文2
3.用户将密文1和密文2一起发给服务器
从服务器的角度:
- 服务器接受到密文1和密文2
2.首先服务器用自己的私钥解密 密文2,得到AES密钥
3.服务器用获取到的AES密钥解密 密文1 得到原文件。
服务端
数字签名流程:客户端首先产生一对RSA公私钥
客户端的角度:
1.客户端首先将要传输的文件进行md5摘要,得到hash值
2.然后用自己产生的私钥加密hash值,得到数字签名,将数字签名和RSA公钥发送给服务器。
服务器的角度:
1.服务器接受到数字签名,用收到的客户端RSA公钥解密数字签名,得到hash1.
2.服务器将解密后的明文进行md5摘要得到hash2.
3.对比hash1和hash2,相同的话,完整性验证成功。
发送编号获取项目
202304180738