Android資料加密之SHA安全雜湊演算法

2021-09-08 19:26:51 字數 1575 閱讀 6990

對於sha安全雜湊演算法,以前沒怎麼使用過,僅僅是停留在聽說過的階段,今天在看快取框架glide原始碼時發現其快取的key採用的不是md5加密演算法,而是sha-256加密演算法,這才勾起了我的好奇心,所以趁著晚上沒啥事,來學習一下。

其他幾種加密方式:

sha(secure hash algorithm,安全雜湊演算法),數字簽名等密碼學應用中重要的工具,被廣泛地應用於電子商務等資訊保安領域。和md5加密演算法一樣,也是一種不可逆的加密演算法,不過也可以通過窮舉法破解,但是sha的破譯難度與成本要高於md5,相對於md5更加安全,現在已成為公認的最安全的雜湊演算法之一,並被廣泛使用。主要包括sha-1,sha-224,sha-256,sha-384,和sha-512這幾種單向雜湊演算法。sha-1,sha-224和sha-256適用於長度不超過2^64二進位制位的訊息。sha-384和sha-512適用於長度不超過2^128二進位制位的訊息。官方解說如下:

sha-1是一種

資料加密演算法,該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預對映或資訊),並把它們轉化為長度較短、位數固定的輸出序列即雜湊值(也稱為資訊摘要或資訊認證**)的過程。

單向雜湊函式的安全性在於其產生雜湊值的操作過程具有較強的單向性。如果在輸入序列中嵌入密碼,那麼任何人在不知道密碼的情況下都不能產生正確的雜湊值,從而保證了其安全性。sha將輸入流按照每塊512位(64個位元組)進行分塊,並產生20個位元組的被稱為資訊認證**或資訊摘要的輸出。

該演算法輸入

報文的長度不限,產生的輸出是乙個160位的

報文摘要。輸入是按512 位的分組進行處理的。sha-1是不可逆的、防衝突,並具有良好的雪崩效應。

通過雜湊演算法可實現

數字簽名實現,數字簽名的原理是將要傳送的明文通過一種函式運算(hash)轉換成報文摘要(不同的明文對應不同的報文摘要),報文摘要加密後與明文一起傳送給接受方,接受方將接受的明文產生新的報文摘要與傳送方的發來報文摘要解密比較,比較結果一致表示明文未被改動,如果不一致表示明文已被篡改。

mac (資訊認證**)就是乙個雜湊結果,其中部分輸入資訊是密碼,只有知道這個密碼的參與者才能再次計算和驗證mac碼的合法性。

由於sha也是有md4演變過來的,所以其優點與md5大致一樣

這裡**演示以sha-256為例。

public

static

string sha(string string)

messagedigest md5 = null

;

try result +=temp;

}return

result;

} catch

(nosuchalgorithmexception e)

return "";

}

跨國公司事蹟:

google官方部落格宣布,將在chrome瀏覽器中逐漸降低sha-1證書的安全指示。但有意思的是google.com目前使用的也是sha-1簽名的證書,但證書將在3個月內過期,google將從2023年起使用sha-2簽名的證書。sha-1演算法目前尚未發現嚴重的弱點,但偽造證書所需費用正越來越低。

Android資料加密之MD5加密

專案中無論是密碼的儲存或者說判斷檔案是否是同一檔案,都會用到md5演算法,今天來總結一下md5加密演算法。md5英文全稱 message digest algorithm 5 翻譯過來是 訊息摘要演算法5 由md2 md3 md4演變過來的,是一種單向加密演算法,是不可逆的一種的加密方式。其他幾種加...

Android資料加密之MD5加密

專案中無論是密碼的儲存或者說判斷檔案是否是同一檔案,都會用到md5演算法,今天來總結一下md5加密演算法。md5英文全稱 message digest algorithm 5 翻譯過來是 訊息摘要演算法5 由md2 md3 md4演變過來的,是一種單向加密演算法,是不可逆的一種的加密方式。其他幾種加...

Android資料加密之MD5加密

1.計算字串md5值 public static string md5 string string messagedigest md5 null try result temp return result catch nosuchalgorithmexception e return 2.計算檔案的...