Java開發必須要掌握的加密方式

第一種類型加密方式:數字摘要(不可逆)

數字摘要也稱為消息摘要,它是一個唯一對應一個消息或文本的固定長度的值,它由一個單向Hash函數對消息進行計算而產生。

Java開發必須要掌握的加密方式

注:這個串有固定的長度,且不同的明文摘要成密文,其結果總是不同的(相對的),而同樣的明文其摘要必定一致

常見的數字摘要加密方式有

1.MD5(Message Digest Algorithm 5(信息摘要算法5))

MD5,是數字摘要算法一種實現,用於確保信息傳輸完整性和一致性,摘要長度為128位

2.SHA(Secure Hash Algorithm,即安全散列算法)

SHA-1是基於MD4算法的,現在已成為公認的最安全的散列算法之一,並被廣泛使用。

第二種加密方式:對稱加密(可逆)

Java開發必須要掌握的加密方式

在對稱加密算法中,數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理後,生成複雜的加密密文進行發送,數據接收方收到密文後,若想讀取原文,則需要使用加密使用的密鑰及相同算法的逆算法對加密的密文進行解密,才能使其恢復成可讀明文。

常見的對稱加密方式有

1.DES

DES算法屬於對稱加密算法,明文按64位進行分組,密鑰長64位,但事實上只有56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個密鑰都有奇數個1),分組後的明文和56位的密鑰按位替代或交換的方法形成密文。

2.AES(Advanced Encryption Standard,即高級加密標準)

AES算法作為新一代的數據加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優點,設計有三個密鑰長度:128,192,256位,比DES算法的加密強度更高,更為安全。

第三種加密方式:非對稱加密(可逆)

非對稱加密算法又稱為公開密鑰加密算法,它需要兩個密鑰,一個稱為公開密鑰(public key), 即公鑰,另一個稱為私有密鑰(private key),即私鑰。公鑰與私鑰需要配對使用,如果用公鑰對數據進行加密,只有用對應的私鑰才能進行解密,而如果使用私鑰對數據進行加密,那麼只有用對應的公鑰才能進行解密。

Java開發必須要掌握的加密方式

常見的非對稱加密方式有

RSA

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

第四種加密方式:數字簽名

簽名認證是對非對稱加密技術與數字摘要技術的綜合運用,指的是將通信內容的摘要信息使用發送者的私鑰進行加密,然後將密文與原文一起傳輸給信息的接收者,接收者通過發送者的公鑰解密被加密的摘要信息,然後使用與發送者相同的摘要算法,對接收到的內容採用相同的方式產生摘要串,與解密的摘要串進行對比,如果相同,則說明接收到的內容是完整的,在傳輸過程中沒有受到第三方篡改,否則則說明通信內容已被第三方修改。

Java開發必須要掌握的加密方式

第五種加密方式:數字證書

數字證書(Digital Certificate),也稱為電子證書,類似於日常生活中的身份證,也是一種形式的身份認證,用於標識網絡中的用戶身份。

一般一個數字證書包含如下內容

對象的名稱(人,服務器,組織)

證書的過期時間

證書的頒發機構(誰為證書擔保)

證書頒發機構對證書信息的數字簽名

簽名算法

對象的公鑰

最後:

給大家分享資深架構師錄製的視頻:(有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構)等這些成為架構師必備的內容,還有阿里大牛直播講解技術!

Java開發必須要掌握的加密方式

後臺私信回覆“架構” 就可以免費獲得這些視頻資料!


分享到:


相關文章: