單向雜湊演算法運算速度實測

2022-05-18 22:45:14 字數 1445 閱讀 6460

測試環境:centos 6.4 x86_64位 vmware虛擬機器 1g ram  (物理主機cpu i7-3770 3.4ghz)

測試**(使用openssl的hash庫):

#include #include 

#include

#include

#include

#include

using

namespace

std;

#include

#include

string md5(const

string

str)

return

ss.str();

}string sha256(const

string

str)

return

ss.str();

}string sha512(const

string

str)

return

ss.str();

}int

main()

time_t t2=time(0

); cout

<< t2

<< t2-t1

t1=time(0

); cout

<< "

sha256:

"

<< t1

t2=time(0

); cout

<< t2

<< t2-t1

t1=time(0

); cout

<< "

sha512:

"

<< t1

t2=time(0

); cout

<< t2

<< t2-t1

}

編譯:  g++ -o sha sha.cpp -lssl -lcrypto

執行:  ./sha

結果:

md5:

1409193206

1409193228

22sha256:

1409193228

1409193263

35sha512:

1409193263

1409193318

55

分別執行了1000萬次hash運算, md5用了22秒, sha256用了35秒,sha512用了55秒。

運算時間基本處於同一量級,使用sha256或sha512代替md5是非常必要的。

因環境差異對結果影響較大,資料僅供備忘和參考。

單向雜湊函式,HASH演算法

md2 md4 message digest algorithm,影響了md5,sha 1等演算法 md5 已被攻破,美國已經不推薦使用。md6 在改進中,因速度問題沒有被sha 3採用。sha 0 被淘汰 sha 1 secure hash algorithm 發現sha 1使用最廣泛,但理論上可...

單向雜湊演算法(Hash) MD5演算法

md5 又稱訊息摘要演算法,對於輸入的任意長度的訊息進行產生固定長度為128位的訊息摘要,由於md5的演算法是對資料進行有失真壓縮,也就是會無法直接通過分析演算法來反向通過md5值獲取原始壓縮資料,一般是用來資料校驗和避免密碼這類的隱私資料的明碼儲存。演算法步驟 1.資料填充 填充訊息使其長度對51...

單向雜湊函式

在介紹單向雜湊函式之前,我們先了解一下什麼情況下需要使用到單向雜湊函式。單向雜湊函式有乙個輸入和輸出。輸入稱為訊息,輸出稱為雜湊值。雜湊值的長度跟訊息的長度無關,不論多少大小的長度的訊息,都會計算出固定長度的雜湊值。單向雜湊函式具有下面幾個特性 能夠根據任意長度的訊息計算出固定長度的雜湊值。計算速度...