雜湊加密傻傻分不清楚
大家都說加密貨幣?貨幣真的有加密嗎?
加密( Encryption )
加密是什麼呢?
加密是種用來將資料加以編碼的數學演算法,只有預期的對象可以加以讀取。 這樣講感覺有點太 HardCore … XD 假如說:國王要把他的遺產鎖在王宮的寶箱裡面,那麼那個「鎖」等同於加密動作,「鑰匙」等同於解密動作。
那我們通常加密會分成兩種
-
對稱式金鑰加密 如名,加密和解密金鑰是相同的。通訊方必須具有相同的金鑰才能實現安全通訊。 缺點:如果遇到中間人攻擊,那麼所有加密的內容都容易被破解,內容會十分的危險。
-
非對稱式金鑰加密 如名,加密和解密金鑰是不相同的。 下圖,(BP1 = Bob Public Key , BP2 = Bob Private Key , AP1 = Alice Public Key , Alice Private Key )
訊息加密 假設 Alice 要傳送一則訊息給 Bob 卻不想給人看到,那他就可以透過非對稱金鑰加密去達成。
數位簽章 假設 Bob 收到一份 Alice 寄來的文件,他要確認這份文件是否是 Alice 寄來的。
雜湊( Hash )
我們在區塊鏈的世界中,很常聽到雜湊,但你真的認識他嗎?
我們的認知雜湊是什麼?
-
- Sha 系列 : Sha0 、 Sha1 、Sha256 … 等
- MD 系列 : MD2 、 MD4 、MD5 … 等
那雜湊到底在做什麼呢?
主要是將不定長度訊息的輸入,演算成固定長度雜湊值的輸出,且所計算出來的雜湊值必須符合兩個主要條件
- 雜湊值是無法還原成原來的訊息
- 雜湊會隨著明文改變而改變
那假如說真的算出兩個一樣的結果呢? 那這種情況我們稱之為碰撞(Collision),而這機率會是超級小。
若想嘗試雜湊可以來玩,SHA256 online
那雜湊我們用在哪裡呢?
驗證密碼 大多數的程式像是 PHP 框架Laravel 的內建會員系統(他的存儲密碼方式就是使用雜湊), 因為雜湊只能出不能返回,很適合用作儲存密碼,使用者只有輸入正確的密碼才能解開。
區塊鏈系統驗證是否遭竄改 區塊鏈的系統中,一個區塊和一個區塊即是用雜湊來做串連,當內部有筆交易有問題則區塊的雜湊值即會改變,我們也能知道系統是否遭到竄改。
小記
經過這篇想必大家也了解,加密和雜湊的不同了! 簡單複習一下:
- 以非對稱加密為例,金鑰的作用可以進行簽章和加密訊息。
- 雜湊就像是一個果汁機,你丟什麼水果進去這個果汁機,他就會給你什麼果汁。
希望大家不要再說錯囉 XD
若文章有任何的問題或要討論的部分,歡迎在底下留言。
歡迎透過 Email: pandap.d819@gamil.com
聯絡我。