加密演算法(一)
加密演算法初探
參考:https://blog.csdn.net/qq_31878855/article/details/69396791
加密演算法分類
常見的加密演算法可以分成三類:對稱加密演算法、非對稱加密演算法和Hash演算法。
- 對稱加密演算法
加密和解密用的是同一串金鑰,如果金鑰發生改變就必須一起改變。 - 非對稱加密演算法
非對稱金鑰就是加密和解密所用到的金鑰不一樣,也稱為公私鑰加密。公鑰用來加密,私鑰用來解密。單向加密的話,加密方持有公鑰,解密方持有私鑰。雙向加密的話,兩方交換公鑰即可。這可真巧妙,就是加密有點慢。 - Hash演算法
Hash演算法特別的地方在於它是一種單向演算法,使用者可以通過Hash演算法對目標資訊生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標資訊。就是說你可以根據源資料推出一串唯一的數字,但是根據這串數字是沒有辦法推出源資料的。
加密演算法的選擇
我們應該根據自己的使用特點來確定,由於非對稱加密演算法的執行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議採用對稱加密演算法,提高加解密速度。
對稱加密演算法不能實現簽名,因此簽名只能非對稱演算法。
由於對稱加密演算法的金鑰管理是一個複雜的過程,金鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮採用非對稱加密演算法。
在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就整合了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。
如果在選定了加密演算法後,那採用多少位的金鑰呢?一般來說,金鑰越長,執行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。
相關文章
- Java常用加密演算法(一)—單向加密演算法(MD5/SHA)Java加密演算法
- 對稱加密演算法----DES加密演算法加密演算法
- HTTPS詳解-加密演算法(一)HTTP加密演算法
- 加密演算法加密演算法
- 加密演算法介紹及加密演算法的選擇加密演算法
- 凱撒加密演算法加密演算法
- 常用加密演算法加密演算法
- RSA加密演算法加密演算法
- Rabbit加密演算法加密演算法
- SHA加密演算法加密演算法
- 常見加密演算法及常見加密演算法簡述加密演算法
- 加密解密技術—對稱演算法加密加密解密演算法
- 一個非常簡單的私有加密演算法加密演算法
- 公鑰加密新演算法——奇異矩陣加密演算法 (轉)加密演算法矩陣
- 加密演算法的使用加密演算法
- iOS加密解密演算法iOS加密解密演算法
- 加密演算法學習加密演算法
- 一文搞懂對稱加密:加密演算法、工作模式、填充方式、程式碼實現加密演算法模式
- 面試官:說一下你常用的加密演算法面試加密演算法
- Android資料加密之異或加密演算法Android加密演算法
- 對稱塊加密演算法加密模式詳解 (轉)加密演算法模式
- Go加密演算法總結Go加密演算法
- 那些常用的加密演算法加密演算法
- 加密解密演算法系列加密解密演算法
- # RSA 公鑰加密演算法加密演算法
- 各種Java加密演算法Java加密演算法
- iOS 加密演算法的使用iOS加密演算法
- iOS異或加密演算法iOS加密演算法
- Java中Blowfish加密演算法Java加密演算法
- MD5加密演算法加密演算法
- Java 常用加密解密演算法Java加密解密演算法
- 非對稱加密演算法-RSA演算法加密演算法
- 匿名洋蔥路由 Tor,又添了一層新加密演算法路由加密演算法
- 一個簡單實用的 vb 加密/解密演算法 (轉)加密解密演算法
- 應用加密1;非對稱加密演算法揭祕加密演算法
- 網路安全 與 加密演算法加密演算法
- Python幾種加密演算法Python加密演算法
- Java安全之安全加密演算法Java加密演算法