加解密概述

一直對加解密這一塊兒很暈,這一段時間抽時間好好整理一下,爭取徹底清洗出來

加密算法分類

加密算法的分類主要是按照是否能夠解密,和密鑰是否相同來進行大類性質劃分,不涉及具體的加解密算法

  1. 單向加密算法(hash算法)
  2. 對稱加密算法
  3. 非對稱加密算法

每個類別的加密算法所包含的算法

  1. 單向加密算法(hash算法)

    • Base64:這個具體來說算不上是一個加密,只是一個編碼,但是也是很有用的,經常在加解密中用到
    • md5:消息摘要算法,保證消息的完整性
    • sha:(Secure Hash Algorithm)主要適用于數字簽名標準(Digital Signature Standard DSS)里面定義的數字簽名算法
    • HMAC:(Hash Message Authentication Code)散列消息鑒別碼,主要是利用哈希算法,以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出。主要是利用哈希算法,以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出,就像是在md5上加了一個擾動因子
  2. 對稱加密算法:加解密使用同一個密鑰

    1. DES:(Data Encryption Standard)中文為數據加密標準:是一種使用密鑰加密的塊算法
    2. 3DES:(Triple DES),中文名“三重數據加密算法,3 條 56 位的密鑰對數據進行三次加密。3DES(即 Triple DES)是 DES 向 AES 過渡的加密算法
      3.CAST:是 通用的 64 位塊加密, 允許最大 128 位的塊大小.
    3. Blowfish:計的Blowfish算法用途廣泛,意在摒棄DES的老化以及其他算法的強制捆綁
    4. Twofish:對稱塊加密; 使用一種簡單密鑰進行加密和解密,作為代替 DES 算法的候選之一
    5. IDEA:先于AES出來取代DES,java6沒提供實現。Bouncy Castle提供了實現
    6. RC6:塊加密算法,是高級加密標準 (AES)的5個候選之一
    7. Serpent:塊加密算法,是高級加密標準 (AES)的5個候選之一.
    8. AES:(Advanced Encryption Standard),中文名“高級加密標準,為了來替代原先的 DES 標準
    9. PEB:(Password Base Encryption),中文名“基于口令加密”,是一種基于密碼的加密算法,其特點是使用口令代替了密鑰,而口令由用戶自己掌管
    10. Camellia:具有與AES同等級的安全強度及運算量
  3. 非對稱加密

    • RSA
    • ECC:橢圓曲線公鑰系統是代替RSA的強有力的競爭者
    • Diffie-Hellman:DH秘鑰交換算法,可以讓雙方在完全缺乏對方信息的前提條件下,通過不安全的信道達成一個共享密鑰,這個方法被發明后不久出現了RSA,另一個進行公鑰交換的算法。估計現在應該沒有怎么用了吧。
    • El Gamal:ElGamal加密系統是一個基于迪菲-赫爾曼密鑰交換( Diffie-Hellman)的非對稱加密算法
    • DSA:(Digital Signature Algorithm)一般用于數字簽名和認證。DSA只是一種算法,和RSA不同之處在于它不能用作加密和解密,也不能進行密鑰交換,只用于簽名,它比RSA要快很多.

下面的章節再分別來介紹加解密的分類,上面說的很多算法在現在看來實際上都是過渡期算法,現在已經基本沒有怎么用了,列在這里只是為了開闊一下眼界

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容