02/08/20 21:56
>661
9行にしか縮まらん
#include <stdio.h>
size_t*p,n,i,z,l,h,B[16],W[80],I[]={0x67452301,0xefcdab89,0x98badcfe,271733878,
0xc3d2e1f0},H[85],d;L(c){((char*)B)[3^n++]=c;if(!(n&=63)){for(;i<80;W[i++]=d)d=
i>15?p=W+i-16,z=p[13]^p[8]^p[2]^*p,z+z|z>>31:B[i];for(i=!memcpy(p=H+80,I,20);--
p,i<80;*p+=(p[1]<<5|p[1]>>27)+p[5]+W[i++]+c,p[2]=d<<30|d/4)d=p[2],z=p[3],c=p[4]
,c=i/20&1?*p=d^z^c,i<40?0x6ed9eba1:0xca62c1d6:i<20?*p=d&(z^c)^c,0x5a827999:(*p=
d&(z|c)|z&c,0x8f1bbcdc);for(i=6;--i;)I[i-1]+=p[i];}}S(a){for(a=4;a--;)L(h>>a*8)
;}main(int a,char**v){FILE*f=fopen(v[1],"rb");for(;~(a=getc(f));h+=!(l+=8))L(a)
;for(L(128);n-56;)L(0);for(S(),S(h=l);i<5;)printf("%08x",I[i++]);}