常見的安全演算法

2021-07-30 08:45:26 字數 1630 閱讀 6816

數字摘要也稱為訊息摘要,它是乙個唯一對應乙個訊息或文字的固定長度的值,它由乙個單向hash函式對訊息進行計算而產生。因此,如果要驗證訊息是否被改變,只能對這個訊息進行hash,把新摘要和舊摘要進行對比。不同的明文摘要成密文,其結果總是不同的(相同的),而相同的明文摘要結果必定一致。所以摘要字串相當於驗證明文的指紋了。

md5即message digest algorithm 5,是數字摘要演算法的一種實現,摘要長度為128位。md5由md4,md3,md2改進而來,主要增強演算法複雜度和不可逆性,該演算法因為穩定快速被廣泛使用,目前主流的程式語言普通都已有md5演算法實現。

sha的全程是secure hash algorithm,即安全雜湊演算法,sha-1是目前常用版本。sha-1是基於md4的,sha-1演算法生成的摘要資訊的長度為160位,與md5相比由於生成的摘要資訊更長,運算的過程更複雜,更為安全,但是執行速度更慢

資料摘要演算法可用於驗證資料完整性,也可以用在資料庫中儲存以hash碼的方式儲存使用者密碼。(在後者應用中,注意不要告訴使用者輸錯的究竟是使用者名稱還是密碼。就像通用的提示那樣,始終顯示:「無效的使用者名稱或密碼。」就行了。這樣可以防止攻擊者在不知道密碼的情況下列舉出有效的使用者名稱。)

那麼如何破解雜湊?破解雜湊加密最簡單的方法是嘗試猜測密碼,雜湊每個猜測的密碼,並對比猜測密碼的雜湊值是否等於被破解的雜湊值。如果相等,則猜中。常用的方法是字典攻擊和暴力攻擊。

字典攻擊使用包含單詞、短語、常用密碼和其他可能用做密碼的字串的字典檔案。對檔案中的每個詞都進行雜湊加密,將這些雜湊值和要破解的密碼雜湊值比較。如果它們相同,這個詞就是密碼。字典檔案是通過大段文字中提取的單詞構成,甚至還包括一些資料庫中真實的密碼。(簡而言之是猜日常短語)

暴力攻擊是對於給定的密碼長度,嘗試每一種可能的字元組合。這種方式會消耗大量的計算,也是破解雜湊加密效率最低的辦法,但最終會找出正確的密碼

對稱加密演算法是應用較早的加密演算法,對稱加密演算法使用的金鑰只有乙個,傳送和接送雙方都使用這個金鑰對資料進行加密和解密,這就要求加密和解密雙方事先都必須知道加密的金鑰

des演算法屬於對稱加密演算法,明文按照64位進行分組,金鑰長64位,但實際上只有56位參與des運算(第8,16,24,32,40,48,56,64是校驗位,使得每個金鑰都有奇數個1),分組後的明文和56位的金鑰按為替代或交換的方法形成密文。由於計算機運算能力的增強,原版des的金鑰長度變得容易被暴力破解,因此演變出了3des演算法。3des使用3條56位的金鑰對資料進行三次加密。

aes演算法是des的加強版,有三個金鑰長度: 128,192,256位,比des演算法的加密強度更高

非對稱加密演算法又稱為公開金鑰加密演算法,它需要兩個金鑰,乙個成為公鑰(public key),另乙個是私鑰(private key)。公鑰與私鑰需要配對使用,如果用公鑰對資料進行加密,只有用對應的私鑰才能進行解密,而如果用使用私鑰對資料進行加密,那麼只有對應的公鑰才能解密。因為加密和解密使用不同金鑰,所以稱為非對稱加密。https就是利用了非對稱加密來傳遞共享金鑰

rsa是目前最有影響力的非對稱加密演算法,rsa演算法基於乙個理論事實:將兩個大素數相乘十分容易,但反過來想要對乘積進行因式分解卻非常困難,因此可以將乘積公開做為加密金鑰。

log 常見的安全演算法

是乙個唯一對應乙個訊息或文字的固定長度的值,由乙個單向hash函式對訊息進行計算而產生,將需要計算內容 摘要成固定長度的串,這個串也稱為數字指紋 同樣的明文其摘要必定一致 加密和解密都依賴同乙個金鑰 需要兩個金鑰 乙個稱為公開金鑰 另乙個稱為私有金鑰 公私鑰需要配對使用 簽名認證是對非對稱加密技術與...

常見的演算法

演算法衡量的標準 1.時間複雜度 兩個程式的執行時間如何衡量?答 用time模組來判斷,time.time 來進行計算,前提是兩段程式必須執行在同乙個硬體相同 cpu 的環境下,才會有意義 因此,我們使用時間差的方式來衡量乙個程式是否快慢沒有任何的意義。所以使用程式執行的大概次數,來衡量程式的執行快...

常見的演算法

private static int binarysearch int list,int target else if target list mid else if target list mid return 1 public static void bubblesort int arr 基本思...