in reply to Pure golfed MD5

Duh, v128 plays very bad joke on v5.8.0. Fixed and improved version follows (418):

#!perl -lp0777 sub n{unpack$_[0],pop}sub f{"@_"%2**32}@Y=n V4,n u,'0`2-%9XFKS>_^W+J8= +E0R$';$_ .=pack Bx.(55- y///c&63).VV,1,8*y///c;s!\C{64}!@V=n V16,$&;@:=@Y;$_='f +orK(0..3) {(C,D,A,B)=@:=@:[-1..2],$:[1]=fA+((D=fD+(A&B|~A&C,A&C|B&~C,A^B^C,A|~C^ +B)[K]+V[K **2.4%13+(1+K+K%2*3)*_&15]+int 2**32*abs sinK*16+_+1)<<(N=31&n x.(K*4+ +_%4).c, glqvein4dkpwfjou)|D>>32-N)for 0..15}_=f_+shift@:for@Y';s/[A-V_]/\$$&/g +;$_!eeg;$ _=n H64,pack V4,@Y

P.S. April 14th. Legacy support costs too much, i decided to drop it. v5.8.0 only version is 403 and fits into five lines:

#!perl -lp0777 sub n{unpack$_[0],pop}sub f{"@_"%2**32}@Y=n V4,n u,'0`2-%9XFKS>_^W+J8= +E0R$';$_= pack'a*Bx8x!64X8VV',$_,1,8*y///c;s!\C{64}!$_='forK(0..3){(C,D,A,B)=@:= +@:[-1..2] ,$:[1]=fA+((D=fD+(A&B|~A&C,A&C|B&~C,A^B^C,A|~C^B)[K]+V[K**2.55+(1+K+K% +2*3)*_&15 ]+2**32*abs sin++$@)<<(N=31&n x.(K*4+_%4).c,glqvein4dkpwfjou)|D>>32-N) +forE..15} _=f_+shift@:for@Y';@V=n V16,$&;@:=@Y;s/[A-V_]/\$$&/g;$_!eeg;$_=n H64,p +ack V4,@Y