Показать сообщение отдельно
  #1  
Старый 24.01.2013, 12:57
Аватар для seeman_tm
seeman_tm seeman_tm вне форума
Новичок
 
Регистрация: 03.02.2011
Сообщения: 79
Репутация: -2306
По умолчанию Что делает JavaScript

Доброго времени суток.
Имеется скрипт на языке JavaScript.
Прошу помощи в написании точного аналога на Delphi.
Сам скрипт вот.
Код:
function generatecode(z){
        function A(i){
          function o(j,b){var c=(j<<b)|(j>>>(32-b));return c
                     };
                      function C(j){
				var b="";
				var c;
				var e;
				var x;
				for(c=0;c<=6;c+=2){
					e=(j>>>(c*4+4))&0x0f;
                                	x=(j>>>(c*4))&0x0f;
					b+=e.toString(16)+x.toString(16)
                                                  }
				return b};function q(j){
						var b="";var c;var e;for(c=7;c>=0;c--){
								e=(j>>>(c*4))&0x0f;
								b+=e.toString(16)
										      }		
							return b
							};
		
				function B(j){
				j=j.replace(/\r\n/g,"\n");
				var b="";
				for(var c=0;c<j.length;c++){
						var e=j.charCodeAt(c);
						if(e<128){
							b+=String.fromCharCode(e)
							} else if((e>127)&&(e<2048)){
								b+=String.fromCharCode((e>>6)|192);
								b+=String.fromCharCode((e&63)|128)
											} else {
								b+=String.fromCharCode((e>>12)|224);
								b+=String.fromCharCode(((e>>6)&63)|128);
								b+=String.fromCharCode((e&63)|128)}
							 }return b
                                                                };

				var r;
				var a,y;
				var k=new Array(80);
				var s=0x67452301;
				var t=0xEFCDAB89;
				var u=0x98BADCFE;
				var v=0x10325476;
				var w=0xC3D2E1F0;
				var h,d,f,g,l;
				var m;i=B(i);
				var n=i.length;
				var p=new Array();
				for(a=0;a<n-3;a+=4){
						y=i.charCodeAt(a)<<24|i.charCodeAt(a+1)<<16|i.charCodeAt(a+2)<<8|i.charCodeAt(a+3);
						p.push(y)}
				switch(n%4){
					case 0:a=0x080000000;
					break;
					case 1:a=i.charCodeAt(n-1)<<24|0x0800000;
					break;
					case 2:a=i.charCodeAt(n-2)<<24|i.charCodeAt(n-1)<<16|0x08000;
					break;
					case 3:a=i.charCodeAt(n-3)<<24|i.charCodeAt(n-2)<<16|i.charCodeAt(n-1)<<8|0x80;
					break
						}
				p.push(a);
				while((p.length%16)!=14)p.push(0);
				p.push(n>>>29);
				p.push((n<<3)&0x0ffffffff);
				for(r=0;r<p.length;r+=16){
							for(a=0;a<16;a++)k[a]=p[r+a];
							for(a=16;a<=79;a++)k[a]=o(k[a-3]^k[a-8]^k[a-14]^k[a-16],1);
							h=s;
							d=t;
							f=u;
							g=v;
							l=w;
							for(a=0;a<=19;a++){
									m=(o(h,5)+((d&f)|(~d&g))+l+k[a]+0x5A827999)&0x0ffffffff;
									l=g;
									g=f;
									f=o(d,30);
									d=h;h=m
										}
							for(a=20;a<=39;a++){
									m=(o(h,5)+(d^f^g)+l+k[a]+0x6ED9EBA1)&0x0ffffffff;
									l=g;
									g=f;
									f=o(d,30);
									d=h;
									h=m
										}
							for(a=40;a<=59;a++){
									m=(o(h,5)+((d&f)|(d&g)|(f&g))+l+k[a]+0x8F1BBCDC)&0x0ffffffff;
									l=g;
									g=f;
									f=o(d,30);
									d=h;
									h=m
										}
							for(a=60;a<=79;a++){
									m=(o(h,5)+(d^f^g)+l+k[a]+0xCA62C1D6)&0x0ffffffff;
									l=g;
									g=f;
									f=o(d,30);
									d=h;
									h=m
										}
							s=(s+h)&0x0ffffffff;
							t=(t+d)&0x0ffffffff;
							u=(u+f)&0x0ffffffff;
							v=(v+g)&0x0ffffffff;
							w=(w+l)&0x0ffffffff
								}
				var m=q(s)+q(t)+q(u)+q(v)+q(w);
				return m.toLowerCase()
		}
return A("uzen"+z+"sfdhjsfdjk")}