Что делает JavaScript
Доброго времени суток.
Появилась нужда выяснить что делает конкретный скрипт. Но проблема в том что мне данный язык не знаком. Изначально скрипт был написан в одну строчку, в силу того что вычитал по жаве предал этому такой вид. Прошу сделать к каждой строчке приведённого ниже скрипта комментарий, с описанием что данная строчка делает. 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")} |
Походу перекодровка/шифрование строки
Одни буквы заменяются другими :( Разбираться подробнее - лень |
Может я не так объяснил, или вы не правильно поняли.
Цитата:
function generatecode(z){ function A(i){ /*Функция A. Параметр переменной I берётся от туда то*/ function o(j,b){ /*Функция о. Параметр переменной j и b берётся от туда то*/ var c=(j<<b)|(j>>>(32-b)); /*Объявление переменной с, равной j хрен поймёшь как относящейся к b*/ return c /*Возврат значения "с"*/ }; function C(j){ /*Функция С. Параметр переменной j берётся от туда то*/ var b=""; /*Объявление переменной*/ var c; /*Объявление переменной*/ var e; /*Объявление переменной*/ var x; /*Объявление переменной*/ for(c=0;c<=6;c+=2){ /*Цыкл от 0 до 6 с шагом 2*/ e=(j>>>(c*4+4))&0x0f; /*Вот из-за таких моментов я тему и создал*/ x=(j>>>(c*4))&0x0f; /*Что означает << и >>>, да и вообще данное выражение.*/ b+=e.toString(16)+x.toString(16) /*Здесь мне непонятно что означает b+=*//*b+= числовое значение "е" приобразуется в строковое*//*а то что в скобочках 16 мне так же не поддаётся осознанию*/ |
Это не нахальство. А для знающих людей элементарное дело.
Я занимаюсь изучением другого языка программирования, мне надо реализовать то что приведено выше в этом языке. Браться за изучение сразу 2х да ещё биться о иностранный язык ? Это приведёт только к большей путанице. Вот поэтому я и спрашиваю о том, что делает та или иная строчка вышеописанного кода, дабы его более менее усвоить и разработать аналогичный алгоритм на другом языке. Да и вообще, ссылаться на то что Документации по JavaScript в интернете - море на мой взгляд это просто лень и нежелание людей вникнуть и попытаться объяснить самим. А может простое элементарное незнание. |
Цитата:
|
Цитата:
|
Вроде бы как со скриптом я разобрался. Переписал его в Delphi.
Осталось дело за малым. Проверка. Собственно так идёт обращение к функции. var code = generatecode($("#code > div > div:nth-child(4) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) ").text()); Так же имеется поле с ID которое я привёл в божеский вид. <div style="display: none" id="code"> <div> <div> <div> <div> <div>88095Q7GNT0AS6SJQ6LY</div> <div>Z4X038IL0JADQWETYIDA</div> </div> <div> <div>8SA94MJFG22V2M5WCH0H</div> <div>SUDOVHYQWXHW23BG9J92</div> </div> <div> <div>BCYPN9FISP62FPHLZU4N</div> <div>QGNYPBDROYITOE4UM819</div> </div> </div> <div> <div> <div>6JBNFAC78XH2AXK7XIQP</div> <div>M6UE6VANMDEKIC5CUVBB</div> </div> <div> <div>GZPLSI7HD7LTY31KJ3ON</div> <div>7F07GI6UBFL3XVO7AP56</div> </div> <div> <div>K1ZBODPPNDBTAXJBI071</div> <div>IBNA2WLPAVDYHNZBBM83</div> </div> </div> <div> <div> <div>TRWY57ZEH1TJ67ZA3BSD</div> <div>LR7KG3NEU49GDQS1KK9Z</div> </div> <div> <div>SPTLI79KZSNDSJ1ZPZ2V</div> <div>DNCOMEHUTBE57QQVVRUD</div> </div> <div> <div>N61JSWWH2MPATJU26QNA</div> <div>9O9I3BUAB5QSC2GVR29C</div> </div> </div> <div> <div> <div>LJK30B83MQQKDFM8FK3G</div> <div>K9T4CZ5UZAWVQZ30OSMM</div> </div> <div> <div>6U0HC97YEDNQSEBIYP3V</div> <div>ZSO9F48QGFBW2JKG6FMM</div> </div> <div> <div>SH1YZ5PUCW3993ALM80J</div> <div>L9C0LGHYPKULXG3L6WRX</div> </div> </div> </div> <div> <div> <div> <div>6L3IR1UNSUD4UQOU3GVT</div> <div>94F01MZXNV8HGGD033BM</div> </div> <div> <div>VIB8VFXTQ5C712UHU7AL</div> <div>36SR3VMPF4RRBPRJ86CS</div> </div> <div> <div>GR8QYNDVE5LT8GCS9DW3</div> <div>I33FYYDNJY7SIQ5IHO5W</div> </div> </div> <div> <div> <div>011ABH398SL5NQCJVQXS</div> <div>RHBVZ8RCFUMONIYVJHV6</div> </div> <div> <div>PVWAPROFT9EEK20T98VG</div> <div>QAVPVSCQ3YCOR4BYFBA4</div> </div> <div> <div>XP40IJKLUCOUN7FB6AAB</div> <div>75V64MV7RY0PSEDBFDVD</div> </div> </div> <div> <div> <div>3RQ7QN36L8LHRF7MU3CQ</div> <div>3LIIQOO5LNIIQR8Y49GD</div> </div> <div> <div>BYZL867TJVJODWR4M0I3</div> <div>1IXTGA3FAXI2KPLKFNHB</div> </div> <div> <div>B8ADF2CKTMVI5QHQOKQB</div> <div>555IC4C4R4N8DTTTPNZF</div> </div> </div> <div> <div> <div>XCRCUL7BUAFRIN3SGC4V</div> <div>V04HYK6O5GKX8KGKULKV</div> </div> <div> <div>QHQV4PJ2ATQOU3ZS98KS</div> <div>VJ8TZQEC1W92I6IA04X4</div> </div> <div> <div>AFXE7VYMFT2WA85UX3V1</div> <div>YKYHSRYHTHE95KQSHWT3</div> </div> </div> </div> <div> <div> <div> <div>OVTD9CDZZ43UXJYIORRB</div> <div>5JTSROYWGIPUTPXZPCFZ</div> </div> <div> <div>CBRWNBB9KLPNVROELPFR</div> <div>697NQZ7RVG7FRPYLN1HN</div> </div> <div> <div>54W8IGFUD85SNANKNUC1</div> <div>7BVSZ6N860IRZ8WSD17V</div> </div> </div> <div> <div> <div>5424W4HOIMW830DC67TG</div> <div>DLKWXGVUFGLMM2TASVPU</div> </div> <div> <div>9T0IUDTV3JB42K0I86LX</div> <div>MOQWYX16TNBD3A41ZOPN</div> </div> <div> <div>M9AP783A3H0UT1G838L7</div> <div>7ZFQ1WVBSU4PVZTICD43</div> </div> </div> <div> <div> <div>SZ9S06BIEAPHHNWSSJXY</div> <div>XUH29P8L88QDUDY1L55B</div> </div> <div> <div>XVSLRN8MZIZG70R2ZQL5</div> <div>28KROO0WQIB389ZPFS3Q</div> </div> <div> <div>YGO89WAHL3WMRNAI6VI9</div> <div>KHIQLYI8DUVJMV208A0U</div> </div> </div> <div> <div> <div>PCY9C0DPEREB3AG1AEH7</div> <div>L0Y4LI58BMUZ5MGD3UW3</div> </div> <div> <div>CZNTKJQLOYGN7VGFS16C</div> <div>6GGE78GU2SLOFEQGANAC</div> </div> <div> <div>J6889HXWUHE2ODXEWDT8</div> <div>2HT73W03VV8RHG8I6JOB</div> </div> </div> </div> <div> <div> <div> <div>M5PQJ2N7HKFIPBERQ8RT</div> <div>0J2VZJ732BV3XTX96O7R</div> </div> <div> <div>0PEQS30A9ENAQ00YXKSG</div> <div>B4ZG5FI4547XNROAJMVP</div> </div> <div> <div>XJRJJ3GW21EFJ2ZY1XOK</div> <div>O0V2C659L6BKE9PKY826</div> </div> </div> <div> <div> <div>ZR1CX8RKOA1FG9R0XHO9</div> <div>IEZK1U229S1282T8WOIN</div> </div> <div> <div>BPPFVUS705Y5QJTGYERY</div> <div>TYO95XNBGX6GD1RSQGSR</div> </div> <div> <div>34A4EL7IGLOOOSYTC0Y3</div> <div>QBO2BC4J7ONJG6P4FXDO</div> </div> </div> <div> <div> <div>Z8E0WHA12RKCBKNW5YB2</div> <div>PO7DI50N3ABX95JTELLG</div> </div> <div> <div>175Q8CSHMS5KTNWYT98E</div> <div>8WWL0F52DNH9AXKMQY95</div> </div> <div> <div>6J78TU7KY46G5XEO7CLV</div> <div>H7JSEOCJA9QD9UDC2GOX</div> </div> </div> <div> <div> <div>PK4EV4YR095U9W7UBRZW</div> <div>Y9DKZ27S4Q2Y9A1RWC36</div> </div> <div> <div>FNOQ05BYRREAGQ7Z51Q9</div> <div>CREVXNR9QMP0KQ1SVXOL</div> </div> <div> <div>YUU00FEGT7JTBNREXOJL</div> <div>BLGY6ZV4HFAEYYZQTP8F</div> </div> </div> </div> <div> <div> <div> <div>KTZD80CBFZ28HYR77SZA</div> <div>9E0W4EBWO7K3HNCICEF2</div> </div> <div> <div>L5LG64J8YXU9RKW8146B</div> <div>UU65SNXKTIK4LN8T1HU4</div> </div> <div> <div>26MZ6HB9Q535QL2LEE4W</div> <div>HJL7U5MZNUPZOLWEMF47</div> </div> </div> <div> <div> <div>BKPZTE277GNLWYDA5N2C</div> <div>98WFIA8GIL11W26XMXVP</div> </div> <div> <div>2GW4CDQVQTVRCG5JSWOC</div> <div>4I0RTJRLZ583N4EYHQKP</div> </div> <div> <div>MK0RKOX19LUXD6S24MFG</div> <div>325JAJJ2EO7ESCJFC4UE</div> </div> </div> <div> <div> <div>02OYWIS5A3GWQWCLKJQR</div> <div>RAVBKBD78KAHF1IAM8UE</div> </div> <div> <div>FM172MGY7T8R4B3TG426</div> <div>06WE2JEYWY3CU5B2SE80</div> </div> <div> <div>MYD0LVFTHA2S12ZRYAGU</div> <div>V6SPH2K8YPLFXLMCQ1L7</div> </div> </div> <div> <div> <div>8KOkV7DcL</div> <div>EHBGNC139570MYHDN7BK</div> </div> <div> <div>0V1BQ2OQ7QS5S5FS21YP</div> <div>EGOOPLAHXI9EW2R911LN</div> </div> <div> <div>OQFAXMXV4E9H1XX0KAJI</div> <div>X193WZHDVH339WQFW6YD</div> </div> </div> </div> </div> </div> Приведите строчку которая пойдёт в функцию. |
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 21:17. |