日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WebSocket数据加密——AES与RSA混合加密

發(fā)布時(shí)間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebSocket数据加密——AES与RSA混合加密 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  之前在寫“一套簡單的web即時(shí)通訊”,寫到第三版的時(shí)候沒什么思路,正好微信公眾號看到一篇講API交互加密,于是就自己搞了一套AES與RSA混合加密,無意中產(chǎn)生應(yīng)用在WebSocket想法,好在思路都差不多,稍微改動(dòng)一下就能實(shí)現(xiàn),特意寫這篇博客記錄下來

  WebSocket是HTML5 開始提供的一種瀏覽器與服務(wù)器進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù),屬于應(yīng)用層協(xié)議。它基于 TCP 傳輸協(xié)議,并復(fù)用 HTTP 的握手通道。

  1、建立連接,客戶端通過 HTTP 請求與服務(wù)端協(xié)商升級協(xié)議。協(xié)議升級完成后,后續(xù)的數(shù)據(jù)交換則遵照 WebSocket 的協(xié)議。

  2、數(shù)據(jù)交換,建立連接后,后續(xù)的操作通過TCP協(xié)議以數(shù)據(jù)幀的格式傳輸交換。

  通過TCP進(jìn)行數(shù)據(jù)交換,不像http請求,websocket數(shù)據(jù)交換在瀏覽器上使用開發(fā)者工具(F12)是看不到數(shù)據(jù),但使用抓包軟件仍然可以獲取到這些TCP傳輸數(shù)據(jù),例如Charles和Fiddler等,以明文的方式直接傳輸很容易被第三方監(jiān)聽,因此,我覺得是有必要的

  前面我們實(shí)現(xiàn)了一套AES與RSA混合加密(詳情請戳:前后端API交互數(shù)據(jù)加密——AES與RSA混合加密完整實(shí)例),我們現(xiàn)在用它實(shí)現(xiàn)一下WebSocket數(shù)據(jù)加密

思路、代碼

  工具類我們直接用之前API加密那一套就行,操作也與之前的API加密類似,發(fā)送前加密、收到數(shù)據(jù)后解密再交給業(yè)務(wù)處理,有個(gè)地方要注意的是,我們在進(jìn)行消息轉(zhuǎn)發(fā)時(shí),要用的是接收方的前端公鑰進(jìn)行加密

  按照我們目前的規(guī)則,項(xiàng)目啟動(dòng)后生成后端密鑰對,訪問登錄頁面時(shí)響應(yīng)后端公鑰給前端,前端保存到后端RSA公鑰并存到sessionStorage,每個(gè)頁面都引入頭部head.html(使用thymeleaf的<script th:replace="head::static"></script>),在head里面獲取前端RSA公鑰密碼、AES的key,并放到window,這些都跟之前的一樣,不需要改變,需要改動(dòng)的是下面這些:

  建立WebSocket連接時(shí),將當(dāng)前用戶的前端公鑰發(fā)送到后端,后端進(jìn)行Map保存


  前端發(fā)送前加密

  后端收到后先解密


  后端發(fā)送之前先加密,這里要用消息接收方的前端公鑰進(jìn)行加密


  前端收到消息后先解密


  效果演示  

  按照程序流程:

  前端加密前、加密后

?

  后端解密前、解密后

  后端加密前、加密后

  前端解密前、解密后

?  完整頁面演示:

  好友上線在線系統(tǒng)通知沒有問題

  聊天沒有問題

  后記

  WebSocket的加密就先記錄到這里,其他的后面再補(bǔ)充

原文地址:https://www.cnblogs.com/huanzi-qch/p/11010153.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結(jié)

以上是生活随笔為你收集整理的WebSocket数据加密——AES与RSA混合加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。