編碼(Encoding)

將原本的資料經過運算轉換成另一組資料,如果要還原可透過反向解碼(decoding)
ex: Base64, URl, UTF-8

加解密(Encrypt and Decrypt)

將資料透過一個 Key 來做加密或解密轉換(和編碼最大的差別)
可以根據鑰匙是否相同分成對稱式非對稱

對稱式加密 (Symmetric Encryption) (DES/Triple DES、AES)

鑰匙相同,加密及解密都共用

- AES(Advanced Encryption Standard)
- DES(Data Encryption Standard)
- DES/Triple

AES 是目前被廣泛接受和使用的加密方式,因提供了更高的安全性和更快的加密速度。DES 和 DES/Triple DES 由於安全性弱和性能較慢,通常不是首選。

非對稱式加密 (Asymmetric Encryption) (RSA 演算法)

加密與解密方式為:公鑰加密,私鑰解密

ex: RSA、ECC

雜湊(Hash)

SHA256 Hash 幾個特點:

  • 不管資料量多大經過 SHA256 運算字串長度都是一樣的
  • 運算完的資料大小一定是 256 bit
  • 不可逆的算法
  • 相同的值用 SHA 運算過後值都是一樣的
  • 資料加密上可以做到防竄改,確認演算前的值要完全一樣,且不可逆

ex: SHA-256、MD5

表格總結

可逆 運算後長度 安全性 Key
雜湊演算 不可 一樣
編碼 不一樣 不高
加解密 不一樣

Reference

  1. 基礎密碼學(對稱式與非對稱式加密技術)
  2. 密碼學
  3. 密碼要怎麼儲存才安全?該加多少鹽?-科普角度
  4. 應用密碼學入門