편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
;해시 함수 속도 비교 | ;해시 함수 속도 비교 | ||
;해시 알고리즘 속도 비교 | ;해시 알고리즘 속도 비교 | ||
==개요== | |||
해시 알고리즘들의 속도를 비교하기 위해 10만회씩 실행시키고 걸린 시간을 측정하였다. | |||
==소스 코드== | ==소스 코드== | ||
< | <source lang='php'> | ||
<!DOCTYPE html> | |||
<meta charset="utf-8" /> | |||
<?php | <?php | ||
function get_time() { | function get_time() { | ||
return | list($usec, $sec) = explode(" ", microtime()); | ||
return ((float)$usec + (float)$sec); | |||
} | } | ||
$algos = | $algos = array('md2','md4','md5','sha1','sha256','sha384','sha512', | ||
'ripemd128','ripemd160','ripemd256','ripemd320','whirlpool', | 'ripemd128','ripemd160','ripemd256','ripemd320','whirlpool', | ||
'tiger128,3','tiger160,3','tiger192,3','tiger128,4','tiger160,4','tiger192,4', | 'tiger128,3','tiger160,3','tiger192,3','tiger128,4','tiger160,4','tiger192,4', | ||
17번째 줄: | 21번째 줄: | ||
'haval128,3','haval160,3','haval192,3','haval224,3','haval256,3','haval128,4', | 'haval128,3','haval160,3','haval192,3','haval224,3','haval256,3','haval128,4', | ||
'haval160,4','haval192,4','haval224,4','haval256,4','haval128,5','haval160,5', | 'haval160,4','haval192,4','haval224,4','haval256,4','haval128,5','haval160,5', | ||
'haval192,5','haval224,5','haval256,5' | 'haval192,5','haval224,5','haval256,5'); | ||
echo "알고리즘\t수행시간 | echo "<textarea style='width:800px;height:500px'>"; | ||
echo "알고리즘\t수행시간\t해시값\n"; | |||
foreach($algos as $algo) { | foreach($algos as $algo) { | ||
$start = get_time(); | |||
for($i=0;$i<100000;$i++) { | |||
$hash_value = hash($algo, '다람쥐 헛 쳇바퀴 타고파'); | |||
} | |||
$end = get_time(); | |||
$time = $end - $start; | |||
echo $algo."\t"; | |||
echo number_format($time,5)."\t"; | |||
echo $hash_value."\n"; | |||
} | } | ||
</ | echo "</textarea>"; | ||
?> | |||
</source> | |||
==비교 결과== | ==비교 결과== | ||
{| class='wikitable' | {| class='wikitable' | ||
| align="center" style="background:#f0f0f0;"|'''순위''' | |||
| align="center" style="background:#f0f0f0;"|'''알고리즘''' | |||
| align="center" style="background:#f0f0f0;"|'''수행시간''' | |||
| align="center" style="background:#f0f0f0;"|'''해시값''' | |||
|- | |- | ||
| 1 || crc32b || 0. | | 1||crc32b||0.08666||7b0edaff | ||
|- | |- | ||
| 2 || crc32 || 0. | | 2||crc32||0.09154||bfc3bc45 | ||
|- | |- | ||
| 3 || | | 3||adler32||0.09953||7815aa6f | ||
|- | |- | ||
| 4 || | | 4||md4||0.10341||e26235ade8d8a519549e567fbfa376fe | ||
|- | |- | ||
| 5 || md5 || 0. | | 5||md5||0.11429||e0f78e455d4ec3b3f86c3227d6dcb416 | ||
|- | |- | ||
| 6 || | | 6||sha1||0.12123||0c7302fe9b2230f512d7f568be8cb582f0235b58 | ||
|- | |- | ||
| 7 || tiger160,3 || 0. | | 7||tiger160,3||0.12211||36dc1eaf4ad43aeec3bb62b4b76982cebea7b49d | ||
|- | |- | ||
| 8 || | | 8||tiger128,3||0.12267||36dc1eaf4ad43aeec3bb62b4b76982ce | ||
|- | |- | ||
| 9 || | | 9||tiger192,3||0.12675||36dc1eaf4ad43aeec3bb62b4b76982cebea7b49d8e5f535d | ||
|- | |- | ||
| 10 || tiger128,4 || 0. | | 10||tiger128,4||0.13667||a67e70547e505863a0f486cc4f00ebf2 | ||
|- | |- | ||
| 11 || tiger160,4 || 0. | | 11||tiger160,4||0.13779||a67e70547e505863a0f486cc4f00ebf2c6476d6a | ||
|- | |- | ||
| 12 || tiger192,4 || 0. | | 12||tiger192,4||0.13814||a67e70547e505863a0f486cc4f00ebf2c6476d6abc6fe8ba | ||
|- | |- | ||
| 13 || ripemd128 || 0. | | 13||ripemd128||0.17244||dca78ff4148cc59c5765decf5410caa5 | ||
|- | |- | ||
| 14 || ripemd256 || 0. | | 14||ripemd256||0.17631||0155faa4e6d00cf71a3c9bb3fa6e065b573b7611f338311b85caf48897d11ddc | ||
|- | |- | ||
| 15 || ripemd160 || 0. | | 15||ripemd160||0.19589||ffcea34506173f7e95d2186f84ce57dbde133da9 | ||
|- | |- | ||
| 16 || | | 16||ripemd320||0.20958||30fc39db6b1bb704d1f34978f15aa027eb41f9aefa4b1de9d80b2e68718db95160233848f447391d | ||
|- | |- | ||
| 17 || | | 17||sha256||0.21007||6f43271fee8a49f84e88dcb5fc9d9f0908a0df7b9faa838ceb8d8ba317c187da | ||
|- | |- | ||
| 18 || | | 18||haval128,3||0.24087||8933d61cefc3176338d7483a13d51a90 | ||
|- | |- | ||
| 19 || | | 19||haval160,3||0.24137||8e3ffa3021d39e4a89c24b657d292462c16cd18b | ||
|- | |- | ||
| 20 || | | 20||haval192,3||0.24474||ffccd3d58711aad4ba6ff6a1ba8b37fe24f2a91f3c818189 | ||
|- | |- | ||
| 21 || | | 21||haval224,3||0.24656||ceccc69dee45357ffcccbe6073816703f492a39ce5f8e7ec0d62d4fd | ||
|- | |- | ||
| 22 || | | 22||haval256,3||0.25005||9e935271fa2e3132ffa3a2f5fefe7e49d288b4ced5d6ec3c9d126cc96f752e24 | ||
|- | |- | ||
| 23 || | | 23||sha384||0.25736||932dce4e61c81716cec6f9459160565157d8b697be26460edeb10a94cf407e2e8fee5d3436e2a58ef0b0ceae5be23621 | ||
|- | |- | ||
| 24 || | | 24||sha512||0.26119||daf03f090d363668e81826ba4ba41577aedd072d1eb822fea90bd25cb8b071b4ed9c5816b50c4d4490974dc7318d03a3da475ab9afee1b6b63fc26cfebf4ed7f | ||
|- | |- | ||
| 25 || | | 25||haval128,4||0.29859||c2160db8791266f94d818e6a663ad6d5 | ||
|- | |- | ||
| 26 || | | 26||haval160,4||0.30165||b117832a8895570c570d5477e1302f78441c66d8 | ||
|- | |- | ||
| 27 || | | 27||haval256,4||0.30694||612dc753a8edc4d594be8d2f2b9256a7bf5b4a06fd06167bc5994a7678c1086f | ||
|- | |- | ||
| 28 || | | 28||haval192,4||0.30801||e7d3e27d0bfe4d1a057161cd420e4ab664a8389c8a80881d | ||
|- | |- | ||
| 29 || | | 29||haval224,4||0.3081||203308629dda469a1561cb614bf2fed821a1728bdfbcc57eb97e40f4 | ||
|- | |- | ||
| 30 || | | 30||haval128,5||0.33649||6b099f9fbeabf26626eb3f8cdf0acb9f | ||
|- | |- | ||
| 31 || | | 31||haval160,5||0.3375||8e058a6dcb463644a8220d9a688ca10ce935e676 | ||
|- | |- | ||
| 32 || | | 32||haval192,5||0.33997||aa089bfb7201fca82c4876a575d0b42c2586eefd88f0a6e1 | ||
|- | |- | ||
| 33 || | | 33||haval256,5||0.35165||cbd8844c8b186437e494f12cbc3839308d23caee0089633ac2013609fd0f267c | ||
|- | |- | ||
| 34 || haval224,5 || 0. | | 34||haval224,5||0.355||96e3ecccfbab338e6a533c64b432e027cd4cdd63f838bbdce1a3e28a | ||
|- | |- | ||
| 35 || whirlpool || | | 35||whirlpool||0.54685||0fba24797520080a3f4cc1f66f2447f71cc0d3a6b8e81c49b8733234adf46661387586e1578b08dc01075076cd85d9e20faea1d4c88a0038a2201f41af511e54 | ||
|- | |- | ||
| 36 || gost || | | 36||gost||0.64053||6d2f8c38e06a05f22eccb43cd1d59ea083305b3fa5534e48d1c6cb6f61197910 | ||
|- | |- | ||
| 37 || snefru || | | 37||snefru||0.99872||1f1ae535ff0334d17e58e7827ce882c2ccd855b34f97cc8bc3c2bb4cbd82cd0d | ||
|- | |- | ||
| 38 || md2 || | | 38||md2||1.42272||2ce22516e87b7770375f2773adb586c9 | ||
|} | |} | ||
==같이 보기== | ==같이 보기== | ||
*[[PHP 수행시간 측정]] | *[[PHP 수행시간 측정]] | ||
== | ==참고자료== | ||
*http://kr.php.net/manual/en/function.hash.php | *http://kr.php.net/manual/en/function.hash.php | ||
[[분류: PHP]] | [[분류:PHP]] | ||
[[분류: 해시 | [[분류:해시]] | ||