JAVASwing RSA和AES加密混合文件傳輸系統(tǒng)
?RSA和AES加密混合文件傳輸系統(tǒng)
環(huán)境要求:
1、java1.8
2、socket
3、mysql
4、io流
5、swing
?登錄界面
客戶端登錄:
1.用戶注冊(cè)的賬號(hào)保存到數(shù)據(jù)庫中,用戶的密碼經(jīng)過md5后保存到數(shù)據(jù)庫中。
2.用戶輸入正確的賬號(hào)和密碼可以進(jìn)入
“?
功能介紹
”
客戶端
客戶端加密傳輸文件到服務(wù)器,服務(wù)器接受文件并解密:服務(wù)器首先要生成一對(duì)RSA公私鑰,并將RSA公鑰發(fā)給客戶端
從客戶端的角度:
1. 用戶自身隨機(jī)產(chǎn)生一個(gè)AES密鑰,用AES密鑰加密要傳輸?shù)奈募?,得到密?
2.用戶收到服務(wù)器發(fā)送的RSA公鑰,用RSA公鑰加密AES密鑰,得到密文2
3.用戶將密文1和密文2一起發(fā)給服務(wù)器
從服務(wù)器的角度:??
1. 服務(wù)器接受到密文1和密文2
2.首先服務(wù)器用自己的私鑰解密 密文2,得到AES密鑰
3.服務(wù)器用獲取到的AES密鑰解密 密文1 得到原文件。
服務(wù)端
數(shù)字簽名流程:客戶端首先產(chǎn)生一對(duì)RSA公私鑰
客戶端的角度:
1.客戶端首先將要傳輸?shù)奈募M(jìn)行md5摘要,得到hash值
2.然后用自己產(chǎn)生的私鑰加密hash值,得到數(shù)字簽名,將數(shù)字簽名和RSA公鑰發(fā)送給服務(wù)器。
服務(wù)器的角度:
1.服務(wù)器接受到數(shù)字簽名,用收到的客戶端RSA公鑰解密數(shù)字簽名,得到hash1.
2.服務(wù)器將解密后的明文進(jìn)行md5摘要得到hash2.
3.對(duì)比hash1和hash2,相同的話,完整性驗(yàn)證成功。
發(fā)送編號(hào)獲取項(xiàng)目
202304171316