看了網上的很多資料,發現有些點沒有說到,也比較複雜,這裡根據個人的理解,簡單描述,方便記憶。
先理解 公/私 鑰(yue)的意思:
私鑰,即私人的鑰匙,是唯一的,所以可以用來證明**是特定的人
公鑰,即公用的鑰匙,我可以將它給很多人(公眾)。所以既然那麼多人都知道,所以公鑰並不能證明**一定是特定的人
在理解 加密、簽名 的作用:
加密簽名:用於確認身份(可以模擬下信用卡上的簽名)
----> 到底誰建立、
擁有、使用公/私 鑰(yue)(這裡很多人會混淆,而且網上很少有人說明,但
很重要)? <----
以加簽/驗籤為例:
1. a 想 使用 我的服務,為了安全,我不希望 a 以外的人可以使用這些服務
建立:
此時,我會要求 a 建立 一對 公私鑰,私鑰他自行保留(用於證明他自己的身份),公鑰給我(用於驗籤--驗證簽名)
擁有:
此時我擁有 a 的公鑰,a 擁有自己的私鑰
使用:
我 收到請求後,用 a 給我的公鑰 驗籤,驗籤通過即證明的確是a傳送的請求,驗證不通過當然是拒絕訪問
2. 那如果 a 呼叫我的服務之後,需要我返回請求結果,但又要保證一定是我返回的請求結果呢?
建立:
此時,我 建立 一對 公私鑰,私鑰自行保留(用於證明我的身份),公鑰給 a(用於驗籤--驗證簽名)
擁有:
此時我擁有 自己的私鑰,a 擁有我的公鑰
使用:
我的返回結果 時,使用私鑰簽名
a 收到請求結果後,用 我給a 的公鑰 驗籤,驗籤通過即證明的確是我返回的結果,驗證不通過當然是拒絕訪問
加密/解密:
簽名保證了資訊的**可靠性,加密可以保證資料的安全性(個人理解,在網路上傳播訊息,是可以通過各種手段攔截的,所以需要對資料進行加密)
如果 a 要 和 b 進行通訊:
在傳送訊息時:使用對方的公鑰進行加密;因為使用對方的公鑰加密,就只要對方的私鑰可以解密,也就是說不會有第三方可以解密內容。
在接收資訊時:使用自己的私鑰進行解密;
為什麼不使用私鑰加密?
因為使用私鑰加密之後,擁有公鑰的人都可以進行解密,那豈不是洩露了 a 和 b 之間的訊息了?
感覺明白上面的問題,基本上都理解了。
加簽 驗籤 加密 解密 公鑰 私鑰
看了網上的很多資料,發現有些點沒有說到,也比較複雜,這裡根據個人的理解,簡單描述,方便記憶。先理解 公 私 鑰 yue 的意思 私鑰,即私人的鑰匙,是唯一的,所以可以用來證明 是特定的人 公鑰,即公用的鑰匙,我可以將它給很多人 公眾 所以既然那麼多人都知道,所以公鑰並不能證明 一定是特定的人 在理解...
php 公鑰加密 私鑰解密 私鑰加簽 公鑰驗籤
其中使用php函式可參考php openssl 公鑰加密 param data 加密資料 return mixed author xin.he date 2020 06 03 public function encryption data 公鑰加密 param data 加密資料 return mi...
我方 私鑰加簽公鑰加密,對方私鑰解密公鑰驗籤
傳送訊息時 傳送方操作 用傳送方的私鑰加簽名,用對方公鑰加密 1 加簽 rsasigncoder.sign signparam,privatekey cipher3des.encrypt json.tojsonstring publickey,vector 接收訊息時 接收方操作 用接收方私鑰解密,...