編碼(encoding) vs 加解密 vs 雜湊(Hash)
編碼(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
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Sean's Blog!
評論
GiscusDisqus