加簽驗籤的理解

2021-07-25 19:55:48 字數 1524 閱讀 5174

對加簽驗籤的理解

加簽驗籤模組早已做完了,從剛開始的一臉懵逼,到上線,前前後後兩周多吧,現在整理一下思路,記錄一下。

加簽驗籤,傳送訊息方,對訊息加簽名;接受訊息方,驗證簽名是否正確。

做加簽驗籤的目的主要目的就是,驗證訊息的完整性

簡單來說,

傳送訊息方:

1、根據訊息內容形成摘要

2、根據摘要形成簽名字段

3、傳送訊息

接受訊息方:

1、接受訊息

2、根據訊息內容形成摘要

3、根據摘要去驗證簽名是否正確

上面講的很粗略,這裡我們從整個過程來講解一下。

首先是環境:

發訊息方a、接受訊息方b、乙個需要傳送的訊息段[merno=001,user=zhangm,pwd=abc123,check=6387]、證書生成工具tools.jar

過程:1、使用工具生成根證書,使用者證書。

a. 填寫工具配置資訊。tools會根據訊息互動雙方的資訊+密碼生成兩個證書,其中雙方的資訊不重要,重要的是密碼。即:儲存密碼。

b. tools會生成乙個金鑰庫,金鑰庫的密碼是上一步設定的密碼。然後tools還會生成乙個金鑰對,即公鑰和私鑰。然後將公鑰和私鑰存放到金鑰庫中。最後tools會生成兩個證書檔案:根證書【可以得到公鑰和私鑰】、使用者證書【可以得到公鑰】。

c. 得到我們想要的東西:根證書、使用者證書、密碼。其中根證書與密碼是一起的,因為從根證書中得到私鑰是需要密碼的。【注:公鑰與私鑰其實就是兩個字串】

2、管理證書

a. a儲存根證書與密碼,b儲存使用者證書。

3、傳送訊息

a. a通過訊息[merno=001,user=zhangm,pwd=abc123,check=6387]形成摘要,摘要的形成方式自行選擇,一般來講是通過整個訊息段做摘要。這裡提供乙個摘要形成方式:對三個訊息欄位的值進行乙個自定義的排序,形成乙個摘要,比如:摘要字段[abc123001zhangm6378],這是一種比較簡單的摘要形成方式。複雜一點的有先對整個訊息通過加密演算法進行加密形成加密訊息作為摘要。

b. a通過根證書與密碼得到公鑰和私鑰

c. a通過公鑰和私鑰對摘要字段進行簽名,形成簽名字段。說白了,就是對上一步形成的摘要[abc123001zhangm6378]通過公鑰和私鑰形成乙個加密的串。假設簽名字段【加密串】為:w8y98hf。【實際會很長】。

d. a重新組裝訊息。將簽名字段放到訊息體中。[merno=001,user=zhangm,pwd=abc123,check=6387,sign=w8y98hf]

e. a傳送訊息

4、接收訊息

a. b接收訊息

b. b根據merno號去匹配對應的使用者證書,然後從證書中拿到公鑰。

c. b通過與a協定好的方式,通過訊息字段生成摘要[abc123001zhangm6378]

d. b通過摘要字段[abc123001zhangm6378],公鑰,簽名欄位sign=w8y98hf,去做驗證是否正確。

本文僅僅是簡單的說明了一下整個加簽驗籤的思路,具體細節包括**就不詳細展示了,希望這個思路能給之後的自己提個醒,別忘記就好。

spring mvc 加簽驗籤方案

一 請求格式要求 1.get 請求 url示例 http xx api test.do?a 1 b 2 c 3 d 4 content type 簽名key值與a 1 b 2 c 3 d 4 進行一定處理後加密得到 2.post請求 url示例 http xx api test.do content...

RSA 加密 解密 加簽 驗籤

1.公鑰與私鑰碼生成 2.獲取公鑰 獲取公鑰 return private publickey getpublickey catch exception e 獲取私鑰 獲取私鑰 return private privatekey getprivatekey catch exception e bas...

加簽 驗籤 加密 解密 公鑰 私鑰

看了網上的很多資料,發現有些點沒有說到,也比較複雜,這裡根據個人的理解,簡單描述,方便記憶。先理解 公 私 鑰 yue 的意思 私鑰,即私人的鑰匙,是唯一的,所以可以用來證明 是特定的人 公鑰,即公用的鑰匙,我可以將它給很多人 公眾 所以既然那麼多人都知道,所以公鑰並不能證明 一定是特定的人 在理解...