加密演算法(一)
加密演算法初探
參考:https://blog.csdn.net/qq_31878855/article/details/69396791
加密演算法分類
常見的加密演算法可以分成三類:對稱加密演算法、非對稱加密演算法和Hash演算法。
- 對稱加密演算法
加密和解密用的是同一串金鑰,如果金鑰發生改變就必須一起改變。 - 非對稱加密演算法
非對稱金鑰就是加密和解密所用到的金鑰不一樣,也稱為公私鑰加密。公鑰用來加密,私鑰用來解密。單向加密的話,加密方持有公鑰,解密方持有私鑰。雙向加密的話,兩方交換公鑰即可。這可真巧妙,就是加密有點慢。 - Hash演算法
Hash演算法特別的地方在於它是一種單向演算法,使用者可以通過Hash演算法對目標資訊生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標資訊。就是說你可以根據源資料推出一串唯一的數字,但是根據這串數字是沒有辦法推出源資料的。
加密演算法的選擇
我們應該根據自己的使用特點來確定,由於非對稱加密演算法的執行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議採用對稱加密演算法,提高加解密速度。
對稱加密演算法不能實現簽名,因此簽名只能非對稱演算法。
由於對稱加密演算法的金鑰管理是一個複雜的過程,金鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮採用非對稱加密演算法。
在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就整合了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。
如果在選定了加密演算法後,那採用多少位的金鑰呢?一般來說,金鑰越長,執行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。
相關文章
- HTTPS詳解-加密演算法(一)HTTP加密演算法
- SHA加密演算法加密演算法
- Rabbit加密演算法加密演算法
- RSA加密演算法加密演算法
- 常用加密演算法加密演算法
- 常見加密演算法及常見加密演算法簡述加密演算法
- 加密演算法學習加密演算法
- 加密演算法的使用加密演算法
- 凱撒加密演算法加密演算法
- 一文搞懂對稱加密:加密演算法、工作模式、填充方式、程式碼實現加密演算法模式
- 非對稱加密演算法-RSA演算法加密演算法
- Java 常用加密解密演算法Java加密解密演算法
- MD5加密演算法加密演算法
- Java中Blowfish加密演算法Java加密演算法
- DreamJudge-1014-加密演算法加密演算法
- 加密解密演算法系列加密解密演算法
- Go加密演算法總結Go加密演算法
- Python幾種加密演算法Python加密演算法
- 那些常用的加密演算法加密演算法
- 面試官:說一下你常用的加密演算法面試加密演算法
- 應用加密1;非對稱加密演算法揭祕加密演算法
- (轉)Go加密演算法總結Go加密演算法
- 逆向中常見的加密演算法加密演算法
- Lifted ElGamal 門限加密演算法GAM加密演算法
- 網路安全 與 加密演算法加密演算法
- Go 加密解密演算法總結Go加密解密演算法
- Java安全之安全加密演算法Java加密演算法
- 第四篇:非對稱加密及RSA加密演算法加密演算法
- RapidSSL DV SSL證書一般會支援哪些加密演算法API加密演算法
- Java中Blowfish加密演算法實現Java加密演算法
- MD5雜湊加密演算法加密演算法
- PHP中RSA加密演算法的使用PHP加密演算法
- 經典加密演算法入門-RSA加密演算法
- QQ TEA加密演算法 JAVA實現加密演算法Java
- 非對稱加密演算法的思考加密演算法
- HTTPS詳解-加密演算法(二)完HTTP加密演算法
- Python反反爬系列(一)----K近鄰演算法與CSS動態字型加密Python演算法CSS加密
- (新)app逆向四(常見加密演算法)APP加密演算法