關於數字簽名和URL簽名


數字簽名

  其實數字簽名的概念很簡單。大家知道,要確保可靠通信,必須要解決兩個問題:首先,要確定消息的來源確實是其申明的那個人;其次,要保證信息在傳遞的過程中不被第三方篡改,即使被篡改了,也可以發覺出來。所謂數字簽名,就是為了解決這兩個問題而產生的,它是對前面提到的非對稱加密技術與數字摘要技術的一個具體的應用。

  對於消息的發送者來說,先要生成一對公私鑰對,將公鑰給消息的接收者。如果消息的發送者有一天想給消息接收者發消息,在發送的信息中,除了要包含原始的消息外,還要加上另外一段消息。這段消息通過如下兩步生成:
  1、對要發送的原始消息提取消息摘要;
  2、對提取的信息摘要用自己的私鑰加密。
通過這兩步得出的消息,就是所謂的原始信息的數字簽名。
而對於信息的接收者來說,他所收到的信息,將包含兩個部分,一是原始的消息內容,二是附加的那段數字簽名。他將通過以下三步來驗證消息的真偽:
  1、對原始消息部分提取消息摘要,注意這里使用的消息摘要算法要和發送方使用的一致;
  2、對附加上的那段數字簽名,使用預先得到的公鑰解密;
  3、比較前兩步所得到的兩段消息是否一致。如果一致,則表明消息確實是期望的發送者發的,且內容沒有被篡改過;相反,如果不一致,則表明傳送的過程中一定出了問題,消息不可信。

  數字簽名證實了一份數字信息確實來自於某個實體。因為基於非對稱加密的原理,用私鑰加密的消息只能用對應的公鑰解密,反之亦然。簽名由客戶端A的私鑰A生成,而私鑰A只由簽名方持有。服務端只能用簽名方的公鑰A對簽名進行解密。當解密成功時,便可相信是簽名方生成了此消息。

 

URL簽名
原理:用戶登錄后向服務器提供用戶認證信息(如賬戶和密碼),服務器認證完后給客戶端返回一個Token令牌,當用戶再次獲取信息時,帶上此令牌,如果令牌正確,則返回數據。對於獲取Token信息后,訪問相關接口,客戶端請求的url需要帶上如下參數:
  時間戳:timestamp
  Token令牌:token
然后對時間戳和token拼接排序,用私鑰進行非對稱加密生成sign簽名,連同前面的一起發給服務端。服務端通過客戶端的公鑰來解密,從而來驗證數據來源的真實性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM