What characters are more common in my MD2 hash?
Mathematica, 43 bytes
Tr@Sign[15-2#~Hash~"MD2"~IntegerDigits~16]&
Outputs the number of digits in 01234567
minus the number of digits in 89abcdef
.
JavaScript (ES6), 731 bytes
This monster is implementing the MD2 algorithm, so it's embarrassingly long. Based on js-md2 by Chen Yi-Cyuan.
let f =
m=>{L=x=s=b=0,n=m.length,M=[],X=[],C=[],S=[...atob`KS5DyaLYfAE9NlSh7PAGE2KnBfPAx3OMmJMr2bxMgsoem1c8/dTgFmdCbxiKF+USvk7E1tqe3kmg+/WOuy/ueqloeZEVsgc/lMIQiQsiXyGAf12aWpAyJzU+zOe/95cD/xkws0iltdHXXpIqrFaqxk+4ONKWpH22dvxr4px0BPFFnXBZZHGHIIZbz2XmLagCG2Alra6wufYcRmFpNEB+D1VHoyPdUa86w1z5zrrF6iYsUw1uhSiECdPfzfRBgU1Satw3yGzBq/ok4XsIDL2xSniIlYvjY+ht6cvV/jsAHTny77cOZljQ5KZ3cvjrdUsKMURQtI/tHxrbmY0znxGDFA`].map(c=>c[O='charCodeAt']());for(l=1;l-2;){for(j=19;j--;)M[j]=M[16+j]||0;for(i=s;i<16;x++)L=(x-n||(b+=i-s,s=i-16,l=2),C[i]^=S[(M[i++]=x<n?m[O](x):16-(b&15))^L]);for(i=0;i<l;i++){for(j=16;j--;)X[32+j]=(X[16+j]=(i?C:M)[j])^X[j];for(t=j=0;j<18;t=t+j++&255)for(k=0;k<48;)t=X[k++]^=S[t]}}for(i=16,n=-i;i--;)n+=!(X[i]&8)+!(X[i]&128);return n}
console.log(f(''))
console.log(f('The quick brown fox jumps over the lazy cog'))
console.log(f('m'))
Python 2 + Crypto, 108 99 93 91 87 78 bytes
Python doesn't have a native builtin for MD2.
from Crypto.Hash import*
lambda s:sum(x<'8'for x in MD2.new(s).hexdigest())-16
Saved 12 bytes thanks to @ovs.
Saved 9 bytes thanks to @FelipeNardiBatista.