簡單hash的概念和數字簽名


hash算法

其實就是將一段非常長的數據通過hash變換為一個固定長度相對較短的數據,簡稱“摘要”。

hash算法的種類很多。

hash碰撞

hash可以將任意長度的數據變為一個固定長度的值,算法的精妙在於這個值對於不同的數據還是不一樣的,如果不同的數據生成的hash值一樣,就是有名的“hash碰撞了”

MD5加密

比如很多網站喜歡將用戶的密碼經過MD5變換后存儲,主要防止數據庫泄露后直接查看用戶的密碼,真正密碼比對時對用戶輸入的密碼進行md5變換然后和存儲的md5值比較
從密碼學上講加密過程都要對應解密過程,即可以通過密文還原明文,所以以上的密碼保護方法不是嚴格意義上的數據加密解密。

不對稱加密:

不對稱加密一個重要特點就是:公鑰加密的數據私鑰可以解密,私鑰加密的數據公鑰可以解密,

個人理解:不對稱加密應該是3部分組成,公鑰和私鑰還有創建者算法。一般暴露的是公鑰和私鑰,創建者算法由第三方權威保留。

 

數字簽名是兩個過程:

先對數據進行hash摘要,然后對摘要進行私鑰加密。

目的:數字簽名解密后和數據解密后的明文hash算法后進行對比。這個過程叫做驗證簽名

 

個人理解:不管是md5還是不對稱加密,可能多種數據加密后出現相同結果,只是概率小,有好處也有壞處。

壞處是,不能唯一的標識一個數據(但數據一般是有格式的,雖然滿足這個結果但是數據格式未必就能正確,變得不可識別,可以偽造,但是很難被認可)。
好處是,因為並不唯一,破解得到結果就不確定,需要對所有結果進行驗證。而且這個數據的大小是不確定的造成很大的計算量。

而數字簽名和不對稱加密一起使用:更加有利於對數據正確性的驗證。同時增加了偽造數據的難度。

 

一般的加密過程應該至少有2套公鑰和私鑰:

1),所以人公用一套公鑰用來查看消息(這個消息必須是可以公開的因為所有人可以解密),發送消息每人配一套私鑰

2),每個人都有一個公鑰和私鑰對應2套加密(一個用來加密發送,一個用來解密接收)

密鑰套數和人數量(n)的關系:1)是n+1;2)是2n

 


免責聲明!

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



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