最近開始搭建伺服器框架,在資料互動的時候看了下各種加密方式,複雜點的看到了這個rsa+aes
簡單講,如果是一般遊戲,使用這個太大材小用,並且在高頻率互動的情況下,加密解密也會影響效能
我大概整理了個流程:
1.服務端生成rsa 公鑰與私鑰
私鑰給服務端使用
公鑰給客戶端使用
2.客戶端在每次請求時做如下操作:
生成aes金鑰
使用aes金鑰對傳送資料進行加密 得到encodeddata
使用rsa公鑰對aes金鑰進行加密 得到encodedaeskey
將encodedaeskey作為請求頭引數 將encryptdata作為請求體發給伺服器
3.服務端在每次收到請求時做如下操作:
通過rsa私鑰解密encodedaeskey得到 aeskey
使用aeskey解密encodeddata的到明文資料 然後todo...
返回的時候可以使用客戶端的aeskey進行客戶端的加密流程去處理
我這邊盡量不做過多解釋,只說一些實用的東西和精髓
後面如果我要使用用這種方式的話,會上傳整體**
具體加密原理可以看他的部落格
app客戶端與伺服器資料互動時 資料加密
總結 1 對稱加密加密與解密使用的是同樣的金鑰,所以速度快,但由於需要將金鑰在網路傳輸,所以安全性不高 2 非對稱加密使用了一對金鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。3 解決的辦法是將對稱加密的金鑰使用非對稱加密的公鑰進行加密,然後傳送出去,接收方使用私鑰進行解密得到對稱加密的金鑰,然...
客戶端和伺服器資料互動
客戶端一次把資料取出,還是分多次來取?有的人說把資料一次從資料庫取到客戶端然後在客戶端任意處理效率會高。有的人說把一次性把所有資料取到客戶端很耗時且資料大多沒有用處最好分次處理。其實這兩個說法並不矛盾,只是他們實用的方面是不同的。如果資料最不大,但是可能會和伺服器發生多次互動,最好一次把資料取出到客...
Python 客戶端 伺服器互動模板
參考鏈結 比較簡單的乙個例子,不過還是記錄一下。參考鏈結裡的我不知道為什麼我的執行不了,下面是經過一些改動後能在本地跑的例子。1.server.py import socket import time import threading message def tcplink sock,addr pr...