---
# System prepended metadata

title: '[Security] Hashing and Encryption'

---

# [Security] Hashing and Encryption

Encryption: 
可逆的, 將明文轉為密文, 也可以將密文轉為明文.

Hashing: 
> 不是所有的資料都需要經由加解密處理，有些資料是不應該被還原的，只需要經由一道程序去驗證你得到的資料是正確的即可.
雜湊是一個由資料本體中計算出資料摘要的技術，它所得到的資料只能證明在計算當下，針對資料本體所得到的特徵，日後如果要檢驗資料本體是否有被異動，只要用相同的計算方式重新針對資料跑一次，若得到了相同的特徵，表示資料沒有被改動過，但它無法得到資料本體，也就是無法由摘要或特徵去反算出本體的長相，就像是你知道帥哥或正妹的特徵，但是沒辦法完全對應到某個帥哥或某個正妹一樣。

資料庫(id(primary key),information,password after hashing)
1. 設定密碼->密碼經過hashing->產生資料指紋(幾乎獨一無無二, 幾乎無collision)->存放於資料庫
2. 登入帳號與密碼, 輸入密碼經過hashing, 與資料庫內設定的的資料指紋比較, 若相同則登入成功, 反之則失敗


[Reference-小朱® 的技術隨手寫](https://dotblogs.com.tw/regionbbs/2017/09/21/hashing_is_not_encryption)



