雜湊與加密(一),雜湊加密

來源:互聯網
上載者:User

雜湊與加密(一),雜湊加密

聲明:本文源自對雜湊(Hash)與加密(Encrypt)的基本原理、區別及工程應用的學習整理


1、雜湊與加密的區別

   (1)雜湊:將目標文本轉換成具有相同長度、無法復原的雜湊字串(或稱訊息摘要);

   (2)加密:將目標文本轉換成具有不同長度、可逆的密文。

實際上,使用相同的hash演算法,不論目標文本有多長,得到的結果長度固定;密碼編譯演算法往往與目標文本的長度成正比。


2、雜湊與加密的數學基礎

   (1)雜湊演算法:R=H(S)是多對一映射,多個不同的S可以通過雜湊演算法H得到相同的R。所以就不存在一個逆映射,使得一個R能得到唯一的S.

一個設計良好的hash演算法很難從雜湊結果中找到目標文本的碰撞,另外,好的雜湊演算法對於目標文本的改變極其敏感。

何為碰撞?對於hash演算法H,如果S1不等於S2,但是H(S1)等於H(S2),則稱S1與S2互為碰撞。

   (2)密碼編譯演算法:R=E(S,Ke)是一對一映射,一個S結合加密金鑰Ke,僅能得到唯一的密文R。反之,一個R結合解密密鑰Kd也僅能得到唯一的S。

一個設計良好的密碼編譯演算法應該是一個“單向陷門函數”,單向陷門函數的特點:即使知道函數本身也很難由函數的值求得其對應的自變數。可是一旦知道了陷門,自變數就很容易計算出來。

簡單的說,好的密碼編譯演算法應該是很難從密文求得明文的,但是如果一旦密鑰被知道了,就很容易由密文求得明文。

在密碼編譯演算法防攻擊這塊,往往假設攻擊者知道密碼編譯演算法和密文,所以我們應該對明文和密鑰進行保護。


3、雜湊與加密在軟體中的應用

(1)雜湊和加密在軟體開發中最常見的應用是資料保護。

為了實現資料保護,選擇雜湊or加密的基本原則:

如果被保護的資料僅用做比較驗證,以後不需要還原成明文,使用雜湊;

如果被保護的資料需要還原成明文,使用加密;

如果你忘記密碼,網站讓你輸入新的密碼,則用的應該是雜湊;

如果你忘記密碼,網站發給你原密碼,則用的應該是加密;

(2)使用簡單的一次雜湊進行資料保護:



如,對註冊進來的口令進行雜湊演算法的映射,將得到的雜湊字串存入資料庫;對每次登入的口令進行雜湊演算法的映射,將得到的雜湊字串和資料庫裡的註冊口令雜湊字串比較,有相同的,則登入成功。

最常用的雜湊演算法是MD5和SHA1。



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.