日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

淺談常見的加密算法

作者:知知之之 更新時間: 2022-07-16 編程語言

加密

數據加密?的基本過程,就是對原來為?明文?的文件或數據按?某種算法?進行處理,使其成為?不可讀?的一段代碼,通常稱為?“密文”。通過這樣的途徑,來達到?保護數據?不被?非法人竊取、閱讀的目的。

解密

加密?的?逆過程?為?解密,即將該?編碼信息?轉化為其?原來數據?的過程。

對稱加密和非對稱加密

加密算法分?對稱加密?和?非對稱加密,其中對稱加密算法的加密與解密?密鑰相同,非對稱加密算法的加密密鑰與解密?密鑰不同,此外,還有一類?不需要密鑰?的?散列算法。

常見的?對稱加密?算法主要有?DES3DESAES?等,常見的?非對稱算法?主要有?RSADSA?等,散列算法?主要有?SHA-1、MD5?等。?

對稱加密

對稱加密算法?是應用較早的加密算法,又稱為?共享密鑰加密算法。在?對稱加密算法?中,使用的密鑰只有一個,發送?和?接收?雙方都使用這個密鑰對數據進行?加密?和?解密。這就要求加密和解密方事先都必須知道加密的密鑰。?

  • 數據加密過程:在對稱加密算法中,數據發送方明文 (原始數據) 和 加密密鑰 一起經過特殊 加密處理,生成復雜的 加密密文 進行發送。

  • 數據解密過程:數據接收方 收到密文后,若想讀取原數據,則需要使用 加密使用的密鑰 及相同算法的 逆算法 對加密的密文進行解密,才能使其恢復成 可讀明文。

非對稱加密

非對稱加密算法,又稱為 公開密鑰加密算法。它需要兩個密鑰,一個稱為 公開密鑰 (public key),即 公鑰,另一個稱為 私有密鑰 (private key),即 私鑰

因為 加密解密 使用的是兩個不同的密鑰,所以這種算法稱為 非對稱加密算法

  1. 如果使用?公鑰?對數據?進行加密,只有用對應的?私鑰?才能?進行解密

  2. 如果使用?私鑰?對數據?進行加密,只有用對應的?公鑰?才能?進行解密。

例子:甲方生成?一對密鑰?并將其中的一把作為?公鑰?向其它人公開,得到該公鑰的?乙方?使用該密鑰對機密信息?進行加密?后再發送給甲方,甲方再使用自己保存的另一把?專用密鑰?(私鑰),對?加密?后的信息?進行解密

常見的簽名加密算法

MD5算法

MD5?用的是?哈希函數,它的典型應用是對一段信息產生?信息摘要,以?防止被篡改。嚴格來說,MD5?不是一種?加密算法?而是?摘要算法。無論是多長的輸入,MD5?都會輸出長度為?128bits?的一個串 (通常用?16?進制?表示為?32?個字符)。

SHA1算法

SHA1 是和 MD5 一樣流行的 消息摘要算法,然而 SHA1MD5安全性更強。對于長度小于 2 ^ 64 位的消息,SHA1 會產生一個 160 位的 消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被應用在檢查 文件完整性 以及 數字簽名 等場景。

HMAC算法

HMAC 是密鑰相關的 哈希運算消息認證碼(Hash-based Message Authentication Code),HMAC 運算利用 哈希算法 (MD5、SHA1 等),以 一個密鑰一個消息 為輸入,生成一個 消息摘要 作為 輸出。

HMAC 發送方接收方 都有的 key 進行計算,而沒有這把 key 的第三方,則是 無法計算 出正確的 散列值的,這樣就可以 防止數據被篡改。

HMAC?算法實例在?多線程環境?下是?不安全的。但是需要在?多線程訪問?時,進行同步的輔助類,使用?ThreadLocal?為?每個線程緩存?一個實例可以避免進行鎖操作。

?AES/DES/3DES算法

AESDES、3DES?都是?對稱?的?塊加密算法,加解密?的過程是?可逆的。常用的有?AES128、AES192、AES256?(默認安裝的?JDK?尚不支持?AES256,需要安裝對應的?jce?補丁進行升級?jce1.7,jce1.8)。

DES算法

DES 加密算法是一種 分組密碼,以 64 位為 分組對數據 加密,它的 密鑰長度56 位,加密解密同一算法。

DES 加密算法是對 密鑰 進行保密,而 公開算法,包括加密和解密算法。這樣,只有掌握了和發送方 相同密鑰 的人才能解讀由 DES加密算法加密的密文數據。因此,破譯 DES 加密算法實際上就是 搜索密鑰的編碼。對于 56 位長度的 密鑰 來說,如果用 窮舉法 來進行搜索的話,其運算次數為 2 ^ 56 次。

3DES算法

是基于?DES?的?對稱算法,對?一塊數據?用?三個不同的密鑰?進行?三次加密,強度更高。

AES算法

AES 加密算法是密碼學中的 高級加密標準,該加密算法采用 對稱分組密碼體制,密鑰長度的最少支持為 128 位、 192 位、256 位,分組長度 128 位,算法應易于各種硬件和軟件實現。這種加密算法是美國聯邦政府采用的 區塊加密標準。

AES 本身就是為了取代 DES 的,AES 具有更好的 安全性、效率靈活性。

RSA算法

RSA?加密算法是目前最有影響力的?公鑰加密算法,并且被普遍認為是目前?最優秀的公鑰方案?之一。RSA?是第一個能同時用于?加密?和?數字簽名?的算法,它能夠?抵抗?到目前為止已知的?所有密碼攻擊,已被?ISO?推薦為公鑰數據加密標準。

RSA?加密算法?基于一個十分簡單的數論事實:將兩個大?素數?相乘十分容易,但想要對其乘積進行?因式分解?卻極其困難,因此可以將?乘積?公開作為?加密密鑰。

ECC算法

ECC 也是一種 非對稱加密算法,主要優勢是在某些情況下,它比其他的方法使用 更小的密鑰,比如 RSA 加密算法,提供 相當的或更高等級 的安全級別。不過一個缺點是 加密和解密操作 的實現比其他機制 時間長 (相比 RSA 算法,該算法對 CPU 消耗嚴重)。

各種加密算法對比

散列算法比較

對稱加密算法比較

?

非對稱加密算法比較?

總結

對稱算法

  1. 密鑰管理:比較難,不適合互聯網,一般用于內部系統

  2. 安全性:中

  3. 加密速度:快好?幾個數量級?(軟件加解密速度至少快?100?倍,每秒可以加解密數?M?比特?數據),適合大數據量的加解密處理

非對稱算法

  1. 密鑰管理:密鑰容易管理

  2. 安全性:高

  3. 加密速度:比較慢,適合?小數據量?加解密或數據簽名

?

?

原文鏈接:https://blog.csdn.net/weixin_35973945/article/details/125794765

欄目分類
最近更新