哈希算法(簡單介紹)

什麼是哈希算法?

哈希是密碼學的基礎
哈希函數的運算結果簡稱哈希值
哈希函數也稱散列函數
根據維基百科的定義,哈希函數是將任意大小的數據,生成出一個固定長度的數據來作爲它的映射(一一對應),它是一種單向密碼體制,即一個從明文到密文的不可逆映射,只有加密過程,沒有解密過程。

在這裏插入圖片描述

1. 哈希算法的基礎

  • 易壓縮:任意長度的數據,算出的摘要長度都固定。
  • 易計算:對於任意給定的消息,計算其Hash值比較容易。
  • 獨一無二:給定不同大小的輸入數據,輸出長度是一定的
  • 單向性(安全性):給定數據m,容易算出哈希值x,而從哈希輸出無法倒推輸入的原始數值m
  • 抗碰撞性:不同的Hash算法,理論上輸出位數越高,抗碰撞性越好

    補充:

    • 碰撞(Collision):不同的輸入得到相同的 Hash值

2. 哈希函數的主要作用

  • 完整性校驗

    eg:一個系統中的登陸過程,需要對用戶密碼進行加密,存儲在數據庫中的密碼是加密後的密碼,而加密過程是不可逆的,即使數據庫泄露,他人也不可輕易的得到用戶的密碼

3. 哈希函數分類

  1. 普通哈希
  2. 加密哈希

4. 常見的Hash算法

  • CRC-32--------54bf652d(給定任意大小數據輸出8位十六進制數)
  • Md5-------------a15e14161a1c1c3ac15d21c5ac51cf51(給定任意大小數據輸出32位十六進制數)
  • SHA256--------d2c244161a1c1c3ac15d21c5a6c51c51d2c244161a1c1c3ac15d21c5a6c51c51(給定任意大小數據輸出64位十六進制數)
  • 注:SHA-2是一系列Hash算法的統稱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章