{"id":1091,"date":"2012-11-22T15:23:45","date_gmt":"2012-11-22T15:23:45","guid":{"rendered":"http:\/\/brain.payzip.co.kr\/?p=1091"},"modified":"2012-11-22T15:23:45","modified_gmt":"2012-11-22T15:23:45","slug":"%ed%95%b4%ec%89%ac%eb%9e%80-hash-algorithm","status":"publish","type":"post","link":"https:\/\/blog.goorigo.com\/?p=1091","title":{"rendered":"\ud574\uc2dc\ub780? (hash algorithm)"},"content":{"rendered":"<p><a href=\"http:\/\/ko.wikipedia.org\/wiki\/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98\" target=\"_blank\"><cite>\uc704\ud0a4 -&gt; \ud574\uc2dc \ud568\uc218<\/cite><\/a><\/p>\n<p>\ud574\uc2dc \ud568\uc218(hash function) \ub610\ub294 \ud574\uc2dc \uc54c\uace0\ub9ac\uc998(hash algorithm)\uc740 \uc784\uc758\uc758 \ub370\uc774\ud130\ub85c\ubd80\ud130 \uc77c\uc885\uc758 \uc9e7\uc740 &#8220;\uc804\uc790 \uc9c0\ubb38&#8221;\uc744 \ub9cc\ub4e4\uc5b4 \ub0b4\ub294 \ubc29\ubc95\uc774\ub2e4.<\/p>\n<p>\ud574\uc2dc \ud568\uc218\ub294 \ub370\uc774\ud130\ub97c \uc790\ub974\uace0 \uce58\ud658\ud558\uac70\ub098 \uc704\uce58\ub97c \ubc14\uafb8\ub294 \ub4f1\uc758 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud574 \uacb0\uacfc\ub97c \ub9cc\ub4e4\uc5b4 \ub0b4\uba70, \uc774 \uacb0\uacfc\ub97c \ud754\ud788 \ud574\uc2dc \uac12(hash value)\uc774\ub77c \ud55c\ub2e4.<\/p>\n<p>\ud574\uc2dc \ud568\uc218\ub294 \uacb0\uc815\ub860\uc801\uc73c\ub85c \uc791\ub3d9\ud574\uc57c \ud558\uba70, \ub530\ub77c\uc11c \ub450 \ud574\uc2dc \uac12\uc774 \ub2e4\ub974\ub2e4\uba74 \uadf8 \ud574\uc26c\uac12\uc5d0 \ub300\ud55c \uc6d0\ub798 \ub370\uc774\ud130\ub3c4 \ub2ec\ub77c\uc57c \ud55c\ub2e4. (\uc5ed\uc740 \uc131\ub9bd\ud558\uc9c0 \uc54a\ub294\ub2e4)<\/p>\n<p>\ud574\uc26c \ud568\uc218\uc758 \ud004\ub9ac\ud2f0\ub294 \uae30\ub300\ub418\ub294 \uc785\ub825 \uc601\uc5ed\uc5d0\uc11c \uc5bc\ub9c8\ub098 \uc801\uc740 \ud574\uc2dc <strong>\ucda9\ub3cc<\/strong>(\uc11c\ub85c \ub2e4\ub978 \ub450 \ub370\uc774\ud130\uc758 \ud574\uc2dc \uac12\uc774 \uac19\uc740 \uacbd\uc6b0)\uc744 \uc77c\uc73c\ud0a4\ub290\ub0d0\ub85c \uacb0\uc815\ub418\ub294\ub370,<\/p>\n<p>\ucda9\ub3cc\uc774 \ub9ce\uc774 \ub0a0\uc218\ub85d \uc11c\ub85c \ub2e4\ub978 \ub370\uc774\ud130\ub97c \uad6c\ubcc4\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c0\uace0 \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud558\ub294 \ube44\uc6a9\uc744 \ub298\ub9ac\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>\ucd9c\ucc98 :\u00a0http:\/\/docs.cena.co.kr\/textyle\/15601<\/p>\n<p>\uc27d\uac8c \ub9d0\ud574\uc11c \ud574\uc2dc\ub294,\u00a0<strong>\ub370\uc774\ud130\ub97c \uc9e7\uac8c \ud568\ucd95<\/strong>\ud558\uc5ec \ub098\ud0c0\ub0b4\ub294 \uac83\uc774\ub77c\uace0 \ubcfc \uc218 \uc788\ub2e4.<br \/>\n\ud574\uc2dc \uc54c\uace0\ub9ac\uc998\uc73c\ub85c\ub294 \uc6b0\ub9ac\uac00 \uc790\uc8fc \uc0ac\uc6a9\ud574 \uc654\ub358\u00a0<strong><a href=\"http:\/\/ko.wikipedia.org\/wiki\/Md5\" target=\"_blank\">MD<\/a><\/strong>,\u00a0<strong><a href=\"http:\/\/ko.wikipedia.org\/wiki\/SHA\" target=\"_blank\">SHA<\/a><\/strong>\u00a0\ub4f1\uc774 \uc788\uc73c\uba70\u00a0<strong>\uc5f0\uad00 \ubc30\uc5f4<\/strong>\ub3c4 \ub0b4\ubd80\uc801\uc73c\ub85c \uac04\ub2e8\ud55c \ud574\uc2dc \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud55c\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758\u00a0<strong>\uc778\ub371\uc2a4<\/strong>\u00a0\uc5ed\uc2dc \ud574\uc2dc \uc54c\uace0\ub9ac\uc998 \ub355\ubd84\uc5d0 \uace0\uc18d \uac80\uc0c9\uc774 \uac00\ub2a5\ud558\uac8c \ub418\uc5c8\ub2e4.<\/p>\n<p>MyHash \ub77c\ub294 \ud574\uc2dc \ud568\uc218\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uc790.<br \/>\nMyHash \ud568\uc218\ub294 \ub370\uc774\ud130\ub97c \uacc4\uc0b0\ud558\uc5ec \ub098\uc624\ub294 \uacb0\uacfc \ud574\uc2dc \uac12\uc774 0\ubd80\ud130 255\uae4c\uc9c0 \ud55c\uc815\ub418\uc5b4 \uc788\uace0, \uc785\ub825\ub41c \ub370\uc774\ud130\uc758 \ubaa8\ub4e0 \ubc14\uc774\ud2b8\ub97c \ub354\ud574\uc11c 256\uc73c\ub85c \ub098\ub208 \ub098\uba38\uc9c0 \uac12\uc744 \ud574\uc2dc \uac12\uc73c\ub85c \uc4f0\uc778\ub2e4\uace0 \uac00\uc815\ud55c\ub2e4.<\/p>\n<p>[java]<\/p>\n<p>public byte myHash(byte []data) {<br \/>\n    int total = 0;<br \/>\n    for(byte b : data) {<br \/>\n        total += b;<br \/>\n    }<br \/>\n    return (byte)(total % 256);<br \/>\n}<br \/>\n[\/java]<\/p>\n<p>\uc774 \ud568\uc218\ub97c \uc774\uc6a9\ud558\uc5ec \ud574\uc2dc \uac12\uc744 \uad6c\ud574\ubcf4\uba74 \uc544\ub798\uc640 \uac19\uc774 \ub2e8\ubb38\uc774\ub4e0 \uc7a5\ubb38\uc774\ub4e0 \uacb0\uacfc \uac12\uc740 256 \ubbf8\ub9cc\uc73c\ub85c \ucd9c\ub825 \ub41c\ub2e4.<\/p>\n<p>[java]<br \/>\nSystem.out.printf(&quot;%d\\n&quot;, hash.myHash(&quot;ab&quot;.getBytes(&quot;UTF-8&quot;)) &amp; 0xff);<br \/>\nSystem.out.printf(&quot;%d\\n&quot;, hash.myHash(&quot;cd&quot;.getBytes(&quot;UTF-8&quot;)) &amp; 0xff);<br \/>\nSystem.out.printf(&quot;%d\\n&quot;, hash.myHash(&quot;abcdefghijklmnopqrstuvwxyz&quot;.getBytes(&quot;UTF-8&quot;)) &amp; 0xff);<br \/>\n[\/java]<\/p>\n<p>195<br \/>\n199<br \/>\n31<\/p>\n<p>\ub9cc\uc57d PHP\uac00 MyHash \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5f0\uad00 \ubc30\uc5f4\uc744 \uad6c\ud604\ud558\uc600\ub2e4\uba74<\/p>\n<p>[java]<br \/>\n$hsh[&#8216;ab&#8217;] = &#8216;ab\ub85c \uc2dc\uc791\ud558\ub294 \ubb38\uc790\uc5f4&#8217;;<br \/>\n$hsh[&#8216;cd&#8217;] = &#8216;cd\ub85c \uc2dc\uc791\ud558\ub294 \ubb38\uc790\uc5f4&#8217;;<br \/>\n$hsh[&#8216;abcdefghijklmnopqrstuvexyz&#8217;] = &#8216;\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790&#8217;;<br \/>\n[\/java]<\/p>\n<p>hsh \ubc30\uc5f4\uc758 \uba54\ubaa8\ub9ac\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud615\ud0dc\ub85c \uc800\uc7a5\ub41c\ub2e4\uace0 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n<p>\uc774\uc81c hsh \uc5f0\uad00\ubc30\uc5f4\uc5d0\uc11c &#8216;abcdefghijklmnopqrstuvwxyz&#8217;\ub77c\ub294 \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub41c \uac12\uc744 \uaebc\ub0b4\ubcf4\uc790.<\/p>\n<p>?<br \/>\n1<br \/>\necho $hsh[&#8216;abcdefghijklmnopqrstuvwxyz&#8217;];<br \/>\n\uc6b0\uc120 abcdefghijklmnopqrstuvwxyz \ub77c\ub294 \ubb38\uc790\uc5f4\uc758 \ud574\uc2dc \uac12\uc744 \uad6c\ud55c\ub2e4. (\uacb0\uacfc: 31)<br \/>\nhsh\uc758 \ubc30\uc5f4\uc5d0\uc11c 31\ubc88\uc9f8\uc5d0 \uc704\uce58\ud55c \ub370\uc774\ud130\ub97c \uaebc\ub0b4\uc11c \ucd9c\ub825\ud55c\ub2e4.<\/p>\n<p>echo $hsh[31];<\/p>\n<p>\uc774\ucc98\ub7fc \uac19\uc740 \uc785\ub825 \ub370\uc774\ud130\ub97c \ud574\uc2dc\ud558\uba74 \uac19\uc740 \uacb0\uacfc\uac00 \ub098\uc624\ub294 \ud2b9\uc9d5\uc774 \uc788\uc5b4\uc11c \ud574\uc2dc \uac12\uc774 \uac19\uc73c\uba74 \uc6d0\ub798\uc758 \uc785\ub825 \ub370\uc774\ud130\ub3c4 \uac19\ub2e4\uace0 \ubcfc \uc218 \uc788\uc73c\ub098 \uac01 \ud574\uc2dc \uc54c\uace0\ub9ac\uc998(MD5 \ud574\uc2dc \uac12\uc740 16\ubc14\uc774\ud2b8(128\ube44\ud2b8), SHA1 \ud574\uc2dc \uac12\uc740 20\ubc14\uc774\ud2b8(160\ube44\ud2b8)\uc758 \uc5b4\ub9c8\uc5b4\ub9c8\ud55c \uacb0\uacfc\uac00 \ub098\uc634)\uc5d0 \ub530\ub77c\uc11c \ubcf4\uc7a5\ud574 \uc8fc\uc9c4 \uc54a\ub294\ub2e4. \ud2b9\ud788 \uc704\uc5d0\uc11c \uc608\ub97c \ub4e0 MyHash\ub294 \ub354\uc6b1 \ub354. (MyHash \ud568\uc218\uc758 &#8216;cd&#8217;\uc758 \ud574\uc2dc \uac12\uc740 &#8216;dc&#8217;\uc758 \ud574\uc2dc \uac12\uacfc \uac19\ub2e4)<\/p>\n<p>\ud574\uc2dc \ud2b9\uc9d5\uc744 \uc774\uc6a9\ud55c \uc5ec\ub7ec\uac00\uc9c0 \uc751\uc6a9<\/p>\n<p>1. \ub2e4\uc6b4\ub85c\ub4dc\ub41c \ud30c\uc77c\uc744 \uac80\uc99d\ud558\uae30 \uc704\ud55c \uc6a9\ub3c4(\uc0ac\uc774\ud2b8\ub294 \ud30c\uc77c\uc758 MD5 \ud574\uc2dc \uac12\uc744 \uba85\uc2dc)<\/p>\n<p>2. \uc804\uc790 \uc11c\uba85\uc5d0\uc11c\ub294 \uc6d0\ubb38\uc758 \ub0b4\uc6a9\uc774 \ubcc0\uc870\ub418\uc5c8\ub294\uc9c0 \ud655\uc778<\/p>\n<p>3. \uc554\ud638\ud654<\/p>\n<p>\uc9c0\uae08\uae4c\uc9c0 \ud574\uc2dc \uc54c\uace0\ub9ac\uc998\uc5d0 \ub300\ud574\uc11c \uac04\ub2e8\ud788 \uc124\uba85\ud558\uc600\ub2e4.<br \/>\n\ub9d0\ub3c4 \uc548\ub418\ub294 \ucf54\ub4dc\ub4e4\ub85c \uc124\uba85\ud588\uc9c0\ub9cc, \uc774\ud574\ud558\uae30 \uc27d\ub3c4\ub85d \uc608\ub97c \ub4e0 \uac83 \ubfd0\uc774\uba70 \uc2e4\uc81c\ub85c MD\uc640 SHA \uac19\uc740 \ud574\uc2dc \ud568\uc218\ub4e4\uc740 \ub9e4\uc6b0 \ubcf5\uc7a1\ud55c \uc5f0\uc0b0\uc744 \ud1b5\ud574 \ud574\uc2dc \uac12 \ucda9\ub3cc\uc774 \uc801\uace0, \ucda9\ub3cc\ub418\ub294 \uc11c\ub85c \ub2e4\ub978 \ub370\uc774\ud130\uc758 \ud574\uc2dc \uac12\uc744 \ucc3e\uae30\ub3c4 \uc27d\uc9c0 \uc54a\ub2e4.<\/p>\n<p>\ubb34\uc5c7\uc774\ub4e0 \uc644\ubcbd\ud55c \uac83\uc740 \uc5c6\ub2e4. \uc774\ub7ec\ud55c \ud574\uc2dc \ud568\uc218\ub4e4\ub3c4 \ucde8\uc57d\uc810\uc774 \ub4dc\ub7ec\ub098\uace0 \uc788\ub294\ub370<\/p>\n<p>\ud2b9\ud788 MD5 \ud574\uc2dc\ub294 1996\ub144\ubd80\ud130 \uacb0\ud568\uc774 \ubc1c\uacac\ub418\uc5c8\uace0 SHA1\uc5d0 \ub300\ud55c \uacf5\uaca9\ub3c4 \ubc1c\uacac\ub418\uc5b4 \ubcf4\uc548\uc0c1 \uc911\uc694\ud55c \uad6c\ud604\uc740<\/p>\n<p><strong> SHA2 \uc774\uc0c1<\/strong>\uc758 \uc54c\uace0\ub9ac\uc998\uc744 \uc0ac\uc6a9\ud560 \uac83\uc744 \uad8c\uc7a5\ud558\uace0 \uc788\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc704\ud0a4 -&gt; \ud574\uc2dc \ud568\uc218 \ud574\uc2dc \ud568\uc218(hash function) \ub610\ub294 \ud574\uc2dc \uc54c\uace0\ub9ac\uc998(hash algorithm)\uc740 \uc784\uc758\uc758 \ub370\uc774\ud130\ub85c\ubd80\ud130 \uc77c\uc885\uc758 \uc9e7\uc740 &#8220;\uc804\uc790 \uc9c0\ubb38&#8221;\uc744 \ub9cc\ub4e4\uc5b4 \ub0b4\ub294 \ubc29\ubc95\uc774\ub2e4. \ud574\uc2dc \ud568\uc218\ub294 \ub370\uc774\ud130\ub97c \uc790\ub974\uace0 \uce58\ud658\ud558\uac70\ub098 \uc704\uce58\ub97c \ubc14\uafb8\ub294 \ub4f1\uc758 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud574&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/1091"}],"collection":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1091"}],"version-history":[{"count":0,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/1091\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}