數字簽名在REST中的應用

2021-06-23 01:29:24 字數 1722 閱讀 6782

客戶端部分**

//建立客戶端簽名

服務端部分**

//直接返回輸出流

return response.ok(new bigfileoutputstream(bucketobject.getdatastream())).build();

分析:這裡實際上應用了數字簽名技術,在我看來,對於rest結構的請求這是必要的,因為rest的特點是無狀態的,這是說不需要保持會話,也就是沒有session的概念,

我們不能再如往常一樣分析當前登入人的資訊了,還是要去驗證傳遞過來的身份資訊,而事實上這種身份資訊不就是可以偽造的嗎?

為了保證資料在傳輸過程中的完整性,防止有人惡意篡改,數字簽名技術應運而生。

數字簽名採用非對稱加密和摘要技術,在客戶端方,首先對要傳輸的資料通過a函式得到乙份摘要,再使用私鑰對這份摘要加密後同原文一同傳遞,

在接收端,首先對傳遞過來的資料也使用a函式得到乙份摘要,然後通過公鑰對傳遞過來的加密摘要執行解密,得到傳遞過來的摘要,然後對比兩份摘要是否

一致,如果一致,說明傳遞過程中沒有被篡改。

我們再想想,假如我修改了傳遞的內容,不修改加密摘要的話,那麼對於修改後的內容,接收獲取摘要和加密摘要是不會一致了。

我們再想想,假如我修改了傳遞的內容,也修改加密摘要的話,修改後的傳遞內容形成的摘要假如是「sttt」,而且假如我是知道公鑰的,我要保證接收

放通過公鑰解密我傳遞的加密摘要時,得到的正好也是「sttt」,也就是說通過解密後的結果反推下加密內容,而我們用的又是非對稱的,所以這一點一般也是

做不到的。

從上面看來,私鑰是用來加密的,而公鑰是用來解密摘要的,這就是數字簽名

數字簽名:

數字簽名的應用例項

一 安全資訊公告 一些資訊保安方面的組織會在其 上發布一些關於安全漏洞的警告,那麼這些警告資訊是否真的是該組織發布的呢?我們如何確認發布這些資訊的 沒有被第三方篡改呢?在這樣的情況下,就可以使用數字簽名,即該組織可以對警告資訊的檔案施加數字簽名,這樣一來世界上所有人就都可以驗證警告資訊的發布者是否合...

數字簽名原理及其應用

簽名的作用簡單來說就是證明某個檔案上的內容確實是我寫的 我認同的,別人不能冒充我的簽名 不可偽造 我也不能否認上面的簽名是我的 不可抵賴 我們知道,手寫簽名之所以不能偽造,是因為每乙個人的筆跡都是獨一無二的,即使模仿,也可以通過專家鑑定分別出來。而不可抵賴,是因為每個人的筆跡都有固定特徵,這些特徵是...

數字簽名的原理及其應用

出自 shusheng007 我們日常都親自簽過各種名,例如你和你的公司簽訂勞動合同時候會簽上你自己的名字。那這個簽名有什麼用呢?對於公司來說就是將來開除你的時候可以讓你不可抵賴。當然合同條款都是不允許塗改的,不然就得重寫,這個用來保證合同的不可偽造性。數字簽名和這個類似,是用來保證一段資訊不可偽造...