home > 投稿 > Flash Lite で MD5 を作ってみた。
2009/10/15

Flash Lite で MD5 を作ってみた。


残念ながら FlashLite2.0 機種上の FlashLite1.1 でしか動きません。

ケータイ SWF からリクエストする際の内容を証明できるようにしたかったんですが、
メモリは食わないものの、スクリプトだけで SWF が 50KB 超えます。
逆にFL2.x以降ならシフトローテート、関数、配列、論理演算を使って短く記述できるので、
SHA1とかも可能と思う。FlashLite2.0以降であれば、 OpenSocial なリクエストもできそう。
Fla はここに http://faces.jp/files/ao/20091015_md5/fl1md5.zip

com.adobe.crypto.MD5 を参考にしたんですが、中身は AND XOR など論理演算が中心で
アセンブラで組みこめそうな内容でした


//md5Init.as

len = length(str);
s = str add mbChr(0x80)

blocks		= ''
blocksMask	= ''

for(i = 0; i <= len; i += 4 ) {
	for (j = 4; j>0; j-- ) {
		c = subString(s, i + j, 1)
		if (c eq '') {
			blocks		= blocks add '.'
			blocksMask	= blocksMask add '0'
		}else {
			blocks		= blocks add c
			blocksMask	= blocksMask add '1'
		}
	}
}

i = (int((len * 8 + 0x40) / 0x0200) * 0x10 + 0x0e) * 4

while(length(blocks) < i) {
	blocks		= blocks add '.';
	blocksMask	= blocksMask add '0'	
}

for(i = 0x01000000; i >=1; i /= 0x0100 ) {
	byte = int((len*8) / i) % 0x0100;
	if (byte == 0) {
		blocks		= blocks add '.';
		blocksMask	= blocksMask add '0'
	}else {
		blocks		= blocks add mbChr(byte);
		blocksMask	= blocksMask add '1'
	}
}

a = 1732584193;
b = -271733879;
c = -1732584194;
d = 271733878;

s = 4294967296;//0x100000000
n = 0x80000000;

p = 0;

//md5Encode.as


for (j = 0; j < 16; j++ ) {
	name		= 'x' add subString('0123456789ABCDEF',j+1,1)
	eval(name)	= 0;
	for (k = 0x01000000; k >= 1; k /= 0x0100 ) {
		if (subString(blocksMask, p+1, 1) > 0) {
			eval(name) += ord(subString(blocks, p+1, 1)) * k
		}
		p++
	}
}

aa = a;
bb = b;
cc = c;
dd = d;	

v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(c/i)%2))||((!(int(b/i)%2))&&(int(d/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x0-680876936;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x2000000)*0x80)+int(((v<0)?v+s :v)/0x2000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(b/i)%2))||((!(int(a/i)%2))&&(int(c/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x1-389564586;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x100000)*0x1000)+int(((v<0)?v+s :v)/0x100000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(a/i)%2))||((!(int(d/i)%2))&&(int(b/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x2+606105819;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x8000)*0x20000)+int(((v<0)?v+s :v)/0x8000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(d/i)%2))||((!(int(c/i)%2))&&(int(a/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x3-1044525330;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x400)*0x400000)+int(((v<0)?v+s :v)/0x400)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(c/i)%2))||((!(int(b/i)%2))&&(int(d/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x4-176418897;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x2000000)*0x80)+int(((v<0)?v+s :v)/0x2000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(b/i)%2))||((!(int(a/i)%2))&&(int(c/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x5+1200080426;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x100000)*0x1000)+int(((v<0)?v+s :v)/0x100000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(a/i)%2))||((!(int(d/i)%2))&&(int(b/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x6-1473231341;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x8000)*0x20000)+int(((v<0)?v+s :v)/0x8000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(d/i)%2))||((!(int(c/i)%2))&&(int(a/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x7-45705983;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x400)*0x400000)+int(((v<0)?v+s :v)/0x400)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(c/i)%2))||((!(int(b/i)%2))&&(int(d/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x8+1770035416;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x2000000)*0x80)+int(((v<0)?v+s :v)/0x2000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(b/i)%2))||((!(int(a/i)%2))&&(int(c/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x9-1958414417;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x100000)*0x1000)+int(((v<0)?v+s :v)/0x100000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(a/i)%2))||((!(int(d/i)%2))&&(int(b/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xA-42063;		if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x8000)*0x20000)+int(((v<0)?v+s :v)/0x8000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(d/i)%2))||((!(int(c/i)%2))&&(int(a/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+xB-1990404162;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x400)*0x400000)+int(((v<0)?v+s :v)/0x400)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(c/i)%2))||((!(int(b/i)%2))&&(int(d/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+xC+1804603682;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x2000000)*0x80)+int(((v<0)?v+s :v)/0x2000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(b/i)%2))||((!(int(a/i)%2))&&(int(c/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+xD-40341101;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x100000)*0x1000)+int(((v<0)?v+s :v)/0x100000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(a/i)%2))||((!(int(d/i)%2))&&(int(b/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xE-1502002290;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x8000)*0x20000)+int(((v<0)?v+s :v)/0x8000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(d/i)%2))||((!(int(c/i)%2))&&(int(a/i)%2)))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+xF+1236535329;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x400)*0x400000)+int(((v<0)?v+s :v)/0x400)+c;	if(b>n)b-=s;

v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(d/i)%2))||((int(c/i)%2)&&(!(int(d/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x1-165796510;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x8000000)*0x20)+int(((v<0)?v+s :v)/0x8000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(c/i)%2))||((int(b/i)%2)&&(!(int(c/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x6-1069501632;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x800000)*0x200)+int(((v<0)?v+s :v)/0x800000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(b/i)%2))||((int(a/i)%2)&&(!(int(b/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xB+643717713;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x40000)*0x4000)+int(((v<0)?v+s :v)/0x40000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(a/i)%2))||((int(d/i)%2)&&(!(int(a/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x0-373897302;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x1000)*0x100000)+int(((v<0)?v+s :v)/0x1000)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(d/i)%2))||((int(c/i)%2)&&(!(int(d/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x5-701558691;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x8000000)*0x20)+int(((v<0)?v+s :v)/0x8000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(c/i)%2))||((int(b/i)%2)&&(!(int(c/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+xA+38016083;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x800000)*0x200)+int(((v<0)?v+s :v)/0x800000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(b/i)%2))||((int(a/i)%2)&&(!(int(b/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xF-660478335;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x40000)*0x4000)+int(((v<0)?v+s :v)/0x40000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(a/i)%2))||((int(d/i)%2)&&(!(int(a/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x4-405537848;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x1000)*0x100000)+int(((v<0)?v+s :v)/0x1000)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(d/i)%2))||((int(c/i)%2)&&(!(int(d/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x9+568446438;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x8000000)*0x20)+int(((v<0)?v+s :v)/0x8000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(c/i)%2))||((int(b/i)%2)&&(!(int(c/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+xE-1019803690;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x800000)*0x200)+int(((v<0)?v+s :v)/0x800000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(b/i)%2))||((int(a/i)%2)&&(!(int(b/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x3-187363961;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x40000)*0x4000)+int(((v<0)?v+s :v)/0x40000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(a/i)%2))||((int(d/i)%2)&&(!(int(a/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x8+1163531501;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x1000)*0x100000)+int(((v<0)?v+s :v)/0x1000)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)&&(int(d/i)%2))||((int(c/i)%2)&&(!(int(d/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+xD-1444681467;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x8000000)*0x20)+int(((v<0)?v+s :v)/0x8000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)&&(int(c/i)%2))||((int(b/i)%2)&&(!(int(c/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x2-51403784;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x800000)*0x200)+int(((v<0)?v+s :v)/0x800000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)&&(int(b/i)%2))||((int(a/i)%2)&&(!(int(b/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x7+1735328473;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x40000)*0x4000)+int(((v<0)?v+s :v)/0x40000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)&&(int(a/i)%2))||((int(d/i)%2)&&(!(int(a/i)%2))))*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+xC-1926607734;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x1000)*0x100000)+int(((v<0)?v+s :v)/0x1000)+c;	if(b>n)b-=s;

v=0;for(i=1;i<s;i*=2){v+=(((((int(b/i)%2)+(int(c/i)%2))%2)+(int(d/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x5-378558;		if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x10000000)*0x10)+int(((v<0)?v+s :v)/0x10000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(a/i)%2)+(int(b/i)%2))%2)+(int(c/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x8-2022574463;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x200000)*0x800)+int(((v<0)?v+s :v)/0x200000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(d/i)%2)+(int(a/i)%2))%2)+(int(b/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xB+1839030562;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x10000)*0x10000)+int(((v<0)?v+s :v)/0x10000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(c/i)%2)+(int(d/i)%2))%2)+(int(a/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+xE-35309556;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x200)*0x800000)+int(((v<0)?v+s :v)/0x200)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(b/i)%2)+(int(c/i)%2))%2)+(int(d/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x1-1530992060;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x10000000)*0x10)+int(((v<0)?v+s :v)/0x10000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(a/i)%2)+(int(b/i)%2))%2)+(int(c/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x4+1272893353;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x200000)*0x800)+int(((v<0)?v+s :v)/0x200000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(d/i)%2)+(int(a/i)%2))%2)+(int(b/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x7-155497632;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x10000)*0x10000)+int(((v<0)?v+s :v)/0x10000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(c/i)%2)+(int(d/i)%2))%2)+(int(a/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+xA-1094730640;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x200)*0x800000)+int(((v<0)?v+s :v)/0x200)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(b/i)%2)+(int(c/i)%2))%2)+(int(d/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+xD+681279174;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x10000000)*0x10)+int(((v<0)?v+s :v)/0x10000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(a/i)%2)+(int(b/i)%2))%2)+(int(c/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x0-358537222;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x200000)*0x800)+int(((v<0)?v+s :v)/0x200000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(d/i)%2)+(int(a/i)%2))%2)+(int(b/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x3-722521979;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x10000)*0x10000)+int(((v<0)?v+s :v)/0x10000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(c/i)%2)+(int(d/i)%2))%2)+(int(a/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x6+76029189;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x200)*0x800000)+int(((v<0)?v+s :v)/0x200)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(b/i)%2)+(int(c/i)%2))%2)+(int(d/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x9-640364487;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x10000000)*0x10)+int(((v<0)?v+s :v)/0x10000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(a/i)%2)+(int(b/i)%2))%2)+(int(c/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+xC-421815835;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x200000)*0x800)+int(((v<0)?v+s :v)/0x200000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(d/i)%2)+(int(a/i)%2))%2)+(int(b/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xF+530742520;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x10000)*0x10000)+int(((v<0)?v+s :v)/0x10000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((((int(c/i)%2)+(int(d/i)%2))%2)+(int(a/i)%2))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x2-995338651;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x200)*0x800000)+int(((v<0)?v+s :v)/0x200)+c;	if(b>n)b-=s;

v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)+((int(b/i)%2)||(!(int(d/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x0-198630844;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x4000000)*0x40)+int(((v<0)?v+s :v)/0x4000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)+((int(a/i)%2)||(!(int(c/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x7+1126891415;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x400000)*0x400)+int(((v<0)?v+s :v)/0x400000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)+((int(d/i)%2)||(!(int(b/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xE-1416354905;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x20000)*0x8000)+int(((v<0)?v+s :v)/0x20000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)+((int(c/i)%2)||(!(int(a/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x5-57434055;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x800)*0x200000)+int(((v<0)?v+s :v)/0x800)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)+((int(b/i)%2)||(!(int(d/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+xC+1700485571;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x4000000)*0x40)+int(((v<0)?v+s :v)/0x4000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)+((int(a/i)%2)||(!(int(c/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+x3-1894986606;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x400000)*0x400)+int(((v<0)?v+s :v)/0x400000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)+((int(d/i)%2)||(!(int(b/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+xA-1051523;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x20000)*0x8000)+int(((v<0)?v+s :v)/0x20000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)+((int(c/i)%2)||(!(int(a/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x1-2054922799;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x800)*0x200000)+int(((v<0)?v+s :v)/0x800)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)+((int(b/i)%2)||(!(int(d/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x8+1873313359;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x4000000)*0x40)+int(((v<0)?v+s :v)/0x4000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)+((int(a/i)%2)||(!(int(c/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+xF-30611744;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x400000)*0x400)+int(((v<0)?v+s :v)/0x400000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)+((int(d/i)%2)||(!(int(b/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x6-1560198380;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x20000)*0x8000)+int(((v<0)?v+s :v)/0x20000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)+((int(c/i)%2)||(!(int(a/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+xD+1309151649;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x800)*0x200000)+int(((v<0)?v+s :v)/0x800)+c;	if(b>n)b-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(c/i)%2)+((int(b/i)%2)||(!(int(d/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=a+x4-145523070;	if(v<0){v+=s;}else if(v>n){v-=s};	a=((v%0x4000000)*0x40)+int(((v<0)?v+s :v)/0x4000000)+b;	if(a>n)a-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(b/i)%2)+((int(a/i)%2)||(!(int(c/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=d+xB-1120210379;	if(v<0){v+=s;}else if(v>n){v-=s};	d=((v%0x400000)*0x400)+int(((v<0)?v+s :v)/0x400000)+a;	if(d>n)d-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(a/i)%2)+((int(d/i)%2)||(!(int(b/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=c+x2+718787259;	if(v<0){v+=s;}else if(v>n){v-=s};	c=((v%0x20000)*0x8000)+int(((v<0)?v+s :v)/0x20000)+d;	if(c>n)c-=s;
v=0;for(i=1;i<s;i*=2){v+=(((int(d/i)%2)+((int(c/i)%2)||(!(int(a/i)%2))))%2)*i;}if(v<0){v+=s;}else if(v>n){v-=s};	v+=b+x9-343485551;	if(v<0){v+=s;}else if(v>n){v-=s};	b=((v%0x800)*0x200000)+int(((v<0)?v+s :v)/0x800)+c;	if(b>n)b-=s;

a += aa;if(a<0){a+=s;}else if(a>n){a-=s};
b += bb;if(b<0){b+=s;}else if(b>n){b-=s};
c += cc;if(c<0){c+=s;}else if(c>n){c-=s};
d += dd;if(d<0){d+=s;}else if(d>n){d-=s};

//md5Hex.as

if(p<length(blocks)){
	gotoAndPlay(_currentframe-1)
}else{
	hex = ''
	for(i = 1; i <s ; i *= 0x100 ) {
		hex = hex add subString('0123456789abcdef',(int(a/(i*0x10))%0x10)+1,1)
		hex = hex add subString('0123456789abcdef',(int(a/i)%0x10)+1,1)
	}
	for(i = 1; i <s ; i *= 0x100 ) {
		hex = hex add subString('0123456789abcdef',(int(b/(i*0x10))%0x10)+1,1)
		hex = hex add subString('0123456789abcdef',(int(b/i)%0x10)+1,1)
	}
	for(i = 1; i <s ; i *= 0x100 ) {
		hex = hex add subString('0123456789abcdef',(int(c/(i*0x10))%0x10)+1,1)
		hex = hex add subString('0123456789abcdef',(int(c/i)%0x10)+1,1)
	}
	for(i = 1; i <s ; i *= 0x100 ) {
		hex = hex add subString('0123456789abcdef',(int(d/(i*0x10))%0x10)+1,1)
		hex = hex add subString('0123456789abcdef',(int(d/i)%0x10)+1,1)
	}
}

トラックバックURL

http://faces2.bascule.co.jp/mt/mt-tb.cgi/599

コメントを投稿

(コメントには承認が必要になることがあります。承認されるまではコメントは表示されません。)