sign簽名存在目的:
為了防止不法分子修改引數資料,進而攻擊伺服器,導致資料洩露或從中獲得利益
例如:乙個介面是使用者把積分轉帳給他的朋友,修改後,變為轉帳到攻擊者的帳戶,這樣,攻擊者就能得到利益啦
sign執行流程:
客戶端:當客戶請求伺服器前,會定義請求引數,通過這些引數,會生成乙個sign簽名,生成簽名之後,和引數一起放進請求頭里,傳給伺服器;
伺服器:接收到傳過來的請求資料,先通過傳來的引數,生成相應的sign簽名,之後與客戶端傳來的sign簽名進行乙個比對(因為兩者的引數一致,呼叫的生成簽名函式一致,那麼最後的sign也會一致),
如果兩個sign簽名一致。通過驗證允許訪問伺服器資料,否則禁止訪問。
簽名的引數裡面,需要包含 channel_secret !!
原因:如果沒有加上channel_secret ,攻擊者只要知道 簽名生成函式 ,就可以不被伺服器發現之下修改資料;
2. 如果乙個安全措施裡面,生成函式需要保密才能安全,在現代密碼學的理解來說,這個安全措施並不夠安全。
加上channel_secret 後,攻擊者不但要知道 簽名生成函式,還需要知道channel_secret,才能夠修改資料。這樣資料就安全了。
什麼是channel_secret :
channel_secret 就是每個 channel 也擁有的乙個 key,
一般在客戶端申請乙個新的 channel 時,伺服器新增 channel 後生成 channel_secret,沒有意外情況下(例如 開發者丟失了 channel_secret ),就只會生成一次並且沒有時間有效期,然後告訴客戶端;
而key 是 密碼學中 不能被公開、被攻擊者知道的東西。而只要key 不被知道,即使其他**被人知道,系統仍能安全;
以上end
RSA加密和簽名的流程
加密和簽名 概念 rsa雖然是非對稱加密,但是有獨特的對稱性 公鑰加密 私鑰解密 私鑰加密 公鑰解密 加密 接受方公鑰加密 接受方私鑰解密 簽名 傳送方私鑰加簽 傳送方公鑰解籤,加密和簽名一起使用才能防止洩露和篡改 1 a給b傳送資訊str 2 a先用sha256對資訊str計算,得到摘要z 3 a...
Spring MVC的執行流程
流程概要 1.web頁面請求 2.dispatchservlet 3.處理器對映 4.控制器 模型 邏輯檢視名 5.視 析器 6.檢視 7.響應 解釋 dispatchservlet將請求委託給應用程式的其他元件來執行實際的處理。dispatchservlet需要將請求傳送給哪個控制器,所以它需要查...
springMVC的執行流程
1 發起請求到前端控制器 dispatcherservlet 4 前端控制器呼叫處理器介面卡去執行handler 5 處理器介面卡去執行handler 6 handler執行完成給介面卡返回modelandview 7 處理器介面卡向前端控制器返回modelandview 是springmvc框架的...