home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
napalm.napnet.hu
/
2015-02-12.napalm.napnet.hu.tar
/
napalm.napnet.hu
/
programok
/
kommunikacio
/
mpp700.exe
/
md5.mrc
< prev
next >
Wrap
Text File
|
2002-02-19
|
6KB
|
133 lines
; myndzi / #scripts-are-us @ dalnet
; v1.1
; credit to stevie-o on dalnet for doing it before me and better ;P
alias md5 {
if ($len($1-) > 4032) return
bunset &in
var %t, %u = $calc($len($1-) * 8), %j = 0, %in, %x
bset -t &in 1 $1- $+ $chr(128) | bset &x 64 0
%t = $calc($bvar(&in,0) + 64 - ($calc($bvar(&in,0) + 8) % 64))
if (%t) bset &in %t 0
bset &in $calc($bvar(&in,0) + 1) $calc(%u % 256) $int($calc(%u / 256)) 0 0 0 0 0 0
%i = $bvar(&in,0)
while (%i) {
tokenize 32 $bvar(&in, [ $+ [ $calc(%i - 3) ] $+ - $+ [ %i ] $+ ] )
%in = $calc($4 * 2^24 + $3 * 2^16 + $2 * 2^8 + $1) %in
dec %i 4
}
var %a = $base(67452301,16,10)
var %b = $base(efcdab89,16,10)
var %c = $base(98badcfe,16,10)
var %d = $base(10325476,16,10)
var %aa, %bb, %cc, %dd
while (%in != $null) {
%x = $gettok(%in,1-16,32) | %in = $gettok(%in,17-,32)
%aa = %a | %bb = %b | %cc = %c | %dd = %d
;/* Round 1 */
%a = $FF(%a, %b, %c, %d, 0, 7, d76aa478, %x)
%d = $FF(%d, %a, %b, %c, 1, 12, e8c7b756, %x)
%c = $FF(%c, %d, %a, %b, 2, 17, 242070db, %x)
%b = $FF(%b, %c, %d, %a, 3, 22, c1bdceee, %x)
%a = $FF(%a, %b, %c, %d, 4, 7, f57c0faf, %x)
%d = $FF(%d, %a, %b, %c, 5, 12, 4787c62a, %x)
%c = $FF(%c, %d, %a, %b, 6, 17, a8304613, %x)
%b = $FF(%b, %c, %d, %a, 7, 22, fd469501, %x)
%a = $FF(%a, %b, %c, %d, 8, 7, 698098d8, %x)
%d = $FF(%d, %a, %b, %c, 9, 12, 8b44f7af, %x)
%c = $FF(%c, %d, %a, %b, 10, 17, ffff5bb1, %x)
%b = $FF(%b, %c, %d, %a, 11, 22, 895cd7be, %x)
%a = $FF(%a, %b, %c, %d, 12, 7, 6b901122, %x)
%d = $FF(%d, %a, %b, %c, 13, 12, fd987193, %x)
%c = $FF(%c, %d, %a, %b, 14, 17, a679438e, %x)
%b = $FF(%b, %c, %d, %a, 15, 22, 49b40821, %x)
;/* Round 2 */
%a = $GG(%a, %b, %c, %d, 1, 5, f61e2562, %x)
%d = $GG(%d, %a, %b, %c, 6, 9, c040b340, %x)
%c = $GG(%c, %d, %a, %b, 11, 14, 265e5a51, %x)
%b = $GG(%b, %c, %d, %a, 0, 20, e9b6c7aa, %x)
%a = $GG(%a, %b, %c, %d, 5, 5, d62f105d, %x)
%d = $GG(%d, %a, %b, %c, 10, 9, 02441453, %x)
%c = $GG(%c, %d, %a, %b, 15, 14, d8a1e681, %x)
%b = $GG(%b, %c, %d, %a, 4, 20, e7d3fbc8, %x)
%a = $GG(%a, %b, %c, %d, 9, 5, 21e1cde6, %x)
%d = $GG(%d, %a, %b, %c, 14, 9, c33707d6, %x)
%c = $GG(%c, %d, %a, %b, 3, 14, f4d50d87, %x)
%b = $GG(%b, %c, %d, %a, 8, 20, 455a14ed, %x)
%a = $GG(%a, %b, %c, %d, 13, 5, a9e3e905, %x)
%d = $GG(%d, %a, %b, %c, 2, 9, fcefa3f8, %x)
%c = $GG(%c, %d, %a, %b, 7, 14, 676f02d9, %x)
%b = $GG(%b, %c, %d, %a, 12, 20, 8d2a4c8a, %x)
;/* Round 3 */
%a = $HH(%a, %b, %c, %d, 5, 4, fffa3942, %x)
%d = $HH(%d, %a, %b, %c, 8, 11, 8771f681, %x)
%c = $HH(%c, %d, %a, %b, 11, 16, 6d9d6122, %x)
%b = $HH(%b, %c, %d, %a, 14, 23, fde5380c, %x)
%a = $HH(%a, %b, %c, %d, 1, 4, a4beea44, %x)
%d = $HH(%d, %a, %b, %c, 4, 11, 4bdecfa9, %x)
%c = $HH(%c, %d, %a, %b, 7, 16, f6bb4b60, %x)
%b = $HH(%b, %c, %d, %a, 10, 23, bebfbc70, %x)
%a = $HH(%a, %b, %c, %d, 13, 4, 289b7ec6, %x)
%d = $HH(%d, %a, %b, %c, 0, 11, eaa127fa, %x)
%c = $HH(%c, %d, %a, %b, 3, 16, d4ef3085, %x)
%b = $HH(%b, %c, %d, %a, 6, 23, 04881d05, %x)
%a = $HH(%a, %b, %c, %d, 9, 4, d9d4d039, %x)
%d = $HH(%d, %a, %b, %c, 12, 11, e6db99e5, %x)
%c = $HH(%c, %d, %a, %b, 15, 16, 1fa27cf8, %x)
%b = $HH(%b, %c, %d, %a, 2, 23, c4ac5665, %x)
;/* Round 4 */
%a = $II(%a, %b, %c, %d, 0, 6, f4292244, %x)
%d = $II(%d, %a, %b, %c, 7, 10, 432aff97, %x)
%c = $II(%c, %d, %a, %b, 14, 15, ab9423a7, %x)
%b = $II(%b, %c, %d, %a, 5, 21, fc93a039, %x)
%a = $II(%a, %b, %c, %d, 12, 6, 655b59c3, %x)
%d = $II(%d, %a, %b, %c, 3, 10, 8f0ccc92, %x)
%c = $II(%c, %d, %a, %b, 10, 15, ffeff47d, %x)
%b = $II(%b, %c, %d, %a, 1, 21, 85845dd1, %x)
%a = $II(%a, %b, %c, %d, 8, 6, 6fa87e4f, %x)
%d = $II(%d, %a, %b, %c, 15, 10, fe2ce6e0, %x)
%c = $II(%c, %d, %a, %b, 6, 15, a3014314, %x)
%b = $II(%b, %c, %d, %a, 13, 21, 4e0811a1, %x)
%a = $II(%a, %b, %c, %d, 4, 6, f7537e82, %x)
%d = $II(%d, %a, %b, %c, 11, 10, bd3af235, %x)
%c = $II(%c, %d, %a, %b, 2, 15, 2ad7d2bb, %x)
%b = $II(%b, %c, %d, %a, 9, 21, eb86d391, %x)
%a = $chop($calc(%a + %aa))
%b = $chop($calc(%b + %bb))
%c = $chop($calc(%c + %cc))
%d = $chop($calc(%d + %dd))
}
%t = $brv($base(%a,10,16,8)) $+ $brv($base(%b,10,16,8)) $+ $brv($base(%c,10,16,8)) $+ $brv($base(%d,10,16,8))
return $lower(%t)
}
alias -l brv return $mid($1,7,2) $+ $mid($1,5,2) $+ $mid($1,3,2) $+ $mid($1,1,2)
alias -l rotl tokenize 32 $chop($1) $2 | return $calc(($1 * 2 ^ $2) % 2^32 + $int($calc($1 / 2 ^ (32 - $2))))
alias -l ff var %a = $1, %b = $2, %c = $3, %d = $4, %x = $gettok($8,$calc($5 + 1),32), %s = $6, %ac = $base($7,16,10) | return $chop($calc(%b + $rotl($calc(%a + $f(%b,%c,%d) + %x + %ac),%s)))
alias -l gg var %a = $1, %b = $2, %c = $3, %d = $4, %x = $gettok($8,$calc($5 + 1),32), %s = $6, %ac = $base($7,16,10) | return $chop($calc(%b + $rotl($calc(%a + $g(%b,%c,%d) + %x + %ac),%s)))
alias -l hh var %a = $1, %b = $2, %c = $3, %d = $4, %x = $gettok($8,$calc($5 + 1),32), %s = $6, %ac = $base($7,16,10) | return $chop($calc(%b + $rotl($calc(%a + $h(%b,%c,%d) + %x + %ac),%s)))
alias -l ii var %a = $1, %b = $2, %c = $3, %d = $4, %x = $gettok($8,$calc($5 + 1),32), %s = $6, %ac = $base($7,16,10) | return $chop($calc(%b + $rotl($calc(%a + $i(%b,%c,%d) + %x + %ac),%s)))
alias -l f var %x = $1, %y = $2, %z = $3 | return $oor($aand(%x,%y),$aand($nnot(%x),%z))
alias -l g var %x = $1, %y = $2, %z = $3 | return $oor($aand(%x,%z),$aand(%y,$nnot(%z)))
alias -l h var %x = $1, %y = $2, %z = $3 | return $xxor(%z,$xxor(%x,%y))
alias -l i var %x = $1, %y = $2, %z = $3 | return $xxor(%y,$oor(%x,$nnot(%z)))
alias -l aand return $and($chop($1),$chop($2))
alias -l oor return $or($chop($1),$chop($2))
alias -l xxor return $xor($chop($1),$chop($2))
alias -l nnot return $not($chop($1))
alias -l chop return $calc($1 % 2^32)