Joke758 Posted November 14, 2006 Share Posted November 14, 2006 (edited) I made an hash function similar to MD5.Here's my script:expandcollapse popupWhile 1 $exemple = Inputbox ( "Hash", "Type a message", "", "", -1, 100, -1, -1 ) Msgbox ( 0, "Hash", hash($exemple )) WEnd Func hash($string) Dim $k[64] Dim $r[64] = [7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21] Local $h0 = 0x67452301 Local $h1 = 0xEFCDAB89 Local $h2 = 0x98BADCFE Local $h3 = 0x10325476 Local $w = __MessageInit ( $string ) $a = $h0 $b = $h1 $c = $h2 $d = $h3 For $i = 0 to 63 $k[$i] = Floor(Abs(Sin($i + 1)) * 2^32) Next For $loop = 1 to 16 For $i = 0 to 63 If 0 < $i < 15 Then $f = BitOr(BitAND ( $b, $c ), BitAnd(BitNOT ( $b ), $d)) $g = $i ElseIf 16 < $i < 31 Then $f = BitOr ( BitAnd ( $d, $b ), BitAnd ( BitNot ( $d ), $c ) ) $g = Mod (5*$i+1, 16 ) ElseIf 32 < $i < 47 Then $f = BitXOR ( $b, $c, $d ) $g = Mod ( 3*$i + 5, 16 ) Elseif 48 < $i < 63 Then $f = BitXOR ( $c, BitOr ( $b, BitNOT ( $d ) ) ) $g = Mod (7*$i, 16) EndIf $temp = $d $d = $c $c = $b $b = BitRotate ($a + $f + $k[$i] + $w[$g], $r[$i]) + $b $a = $temp Next $h0 = $h0 + $a $h1 = $h1 + $b $h2 = $h2 + $c $h3 = $h3 + $d Next Return Hex(Abs($h0))&Hex(Abs($h1))&Hex(Abs($h2))&Hex(Abs($h3)) EndFunc Func __MessageInit($message) Dim $new [65535] Dim $rt[64] Local $tmp = 64 For $i = 0 to StringLen ( $message ) $new[$i] = Asc( StringMid ($message, $i+1, 1 ) ) Next If StringLen ( $message ) < 64 Then For $i = 0 to 63 If $new[$i] <> "" Then $rt[$i] = $new[$i] Else $rt[$i] = 0 EndIf Next Return $rt EndIf For $i = 0 to StringLen ( $message ) If $i >= $tmp+64 Then $tmp = $tmp+64 If $i > 63 Then $rt[$i-$tmp] = BitXOR ( $new[$i], $rt[$i-$tmp] ) Else $rt[$i] = $new[$i] EndIf Next Return $rt EndFuncExemple:This is a test.A9415AD45B20DCDC0697E205D63352E4This is a rest.601174114165187C24F793148F7FB45F Edited January 3, 2007 by Joke758 [u]My Programs:[/u]Word Search Creator - Make your own Word SearchShortHand - Hide a secret message in a jpg fileHex Editor - Edit your Binary fileIncrease file size - Increase the size of any filesArt Generator - A program that generate random picture[u]My Functions:[/u]16-Bits Hash - My Hash function similar to MD5Probabilities - My probabilities function (factorial, permuation, combination)_GetDate() - Convert a date to a day of the week_Base(), _Dec() - Convert a number in any base (bin, oct, hex, dec). Create your own! Link to comment Share on other sites More sharing options...
jvanegmond Posted November 15, 2006 Share Posted November 15, 2006 Very nice! Too bad MD5 is outdated. github.com/jvanegmond Link to comment Share on other sites More sharing options...
/dev/null Posted November 15, 2006 Share Posted November 15, 2006 (edited) Very nice! Too bad MD5 is outdated.@Manadar: MD5 is outdated? I'm sure you can explain why and in which circumstances...@Joke758: Can you mathematically prove, that your hash function is cryptographically as strong as MD5 and/or SHA-1? If you cannot do that, I recommend these articles: http://www.securius.com/newsletters/Snake_...Encryption.html AND http://www.schneier.com/crypto-gram-9902.htmlCheersKurt Edited November 15, 2006 by /dev/null __________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf * Link to comment Share on other sites More sharing options...
jvanegmond Posted November 15, 2006 Share Posted November 15, 2006 @Manadar: MD5 is outdated? I'm sure you can explain why and in which circumstances...You just named the reasons why MD5 is outdated. MD5 has inherit flaws. I've only just noticed that he said his script was not exactly MD5, so he may have gotten rid of those flaws. However, it looks more like a rebuild of MD5. github.com/jvanegmond Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now