看板 Soft_Job
作者 kofi0916 (1124.2)
標題 [請益] Javascript使用eval的目的?
時間 Tue Jan 20 15:58:45 2015


本魯在抓兆豐金的匯率網頁時,看到一段Javascript Code

https://wwwfile.megabank.com.tw/rates/M001/viewF.asp

 

<SCRIPT LANGUAGE=javascript>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return
d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new
RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('10={Y:c(D,x){5 11=7.q(D);5
6=11.1g(\'6\');16(i=x;i<6.15;i++){o(x){o(i%2==0){6[i].9+="12";6[i].13=c(){y.9=\'12\'}}M{6[i].9+="X";6[i].13=c(){y.9=\'X\'}}};6[i].1h=c(){y.9=\'1i\'}}}};c
J(R){t{1d=1e.1f(\'L()\',R)}v(e){}};c L(){5 8;5 p=K.I()*4;5
Z=\'../1m/1n@1o.1j?I=\'+p;t{8=z W("1k.T")}v(e){t{8=z W("1l.T")}v(e){8=z
1a();8.17=1c}};t{8.18(\'1b\',Z,19);8.1p=c(){o(8.1M==4){o(8.F==1D){V(8.1F,8.F)}}};8.1G(1H)}v(e){}};c
V(k,F){5 w=S.U(1L,1K,a,a,a,a);5
N=S.U(1J,a,a,a,a,a);7.q("1t").d=k.l("|")[0];7.q("1u").d=k.l("|")[1];5
j=k.l("|")[2].l("#");5 Q=7.q("P");5 C=7.q("14");C.1v(Q);5
u=C.b(7.f("u"));u.1q("D","P");16(5 i=0;i<j.15;i++){5 6=u.b(7.f("6"));5
A=6.b(7.f("n"));A.9="m 1s";A.d=r(j[i],"1z");5 B=6.b(7.f("n"));B.9="m
s";B.d=r(j[i],"1A");5 G=6.b(7.f("n"));G.9="m s";G.d=r(j[i],"1B");5
H=6.b(7.f("n"));H.9="m s";H.d=r(j[i],"1x");5 E=6.b(7.f("n"));E.9="m
s";E.d=r(j[i],"1y");5 O=6.b(7.f("n"));O.9="m s";O.d="&1w;"};10.Y(\'14\',1);5
g=0;o(!1r(k.l("|")[3])){g=1*k.l("|")[3]}M{g=h(w)};o(h(g)!=h(w)){5
p=0;1C{p=K.1E(K.I()*h(N))}1I(h(p)>h(N))g=g+p;J(""+g)}M{J(h(w))}};L();',62,111,'|||||var|tr|document|xhttp|className|48|appendChild|function|innerHTML||createElement|i_timeout|parseInt||rateArr|text|split|con_td|td|if|ran_number|getElementById|getKeyValuePairValue|money_td|try|tbody|catch|nums1|start|this|new|td0|td1|table|id|td4|status|td2|td3|random|createTimer|Math|doRefresh|else|nums2|td5|contentTbody|tbodyRemove|nextRequest|String|XMLHTTP|fromCharCode|onLoad|ActiveXObject|tbcolor2|hover|url|jq|tb|tbco
lor1|onmouseout|contentTable|length|for|timeout|open|true|XMLHttpRequest|GET|5000|timerID|self|setTimeout|getElementsByTagName|onmouseover|tbcolor3|asp|Msxml2|Microsoft|D001|_|V_|onreadystatechange|setAttribute|isNaN|td_left|dataDate|dataTime|removeChild|nbsp|col3|col4|col0|col1|col2|do|200|round|responseText|send|null|while|54|56|49|readyState'.split('|'),0,{}))
</SCRIPT>

想請教各位大大一下, 把程式寫成這樣有什麼好處嗎? 謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.198.181
※ 文章代碼(AID): #1KlWgtPQ (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1421740727.A.65A.html
mrbigmouth: 這通常是程式從你的原始碼自動產生的
主要是為了壓縮程式碼節省頻寬  然後讓別人很難看懂1F 01/20 15:59
meowyih: 也許人家是 php 之勒的一行行 echo '程式程式
在 php 上看起來有分行, echo 完後全擠在一起啊 XD3F 01/20 16:00
mrbigmouth: 正常情況這不是人能寫得出的程式碼5F 01/20 16:00
meowyih: 我是開玩笑的 (怕有人認真...)6F 01/20 16:01
sudada: 通常這是故意的 就是不想讓你看懂7F 01/20 16:30
wisehuang: 好處就是讓你看不懂啊8F 01/20 16:43
bbcust: 簡單的minify和加密9F 01/20 16:47
abccbaandy: 認真問,每個XXX.min.js不都長這樣?
樓樓上,這不是加密吧...頂多算混淆(?10F 01/20 16:48
TonyQ: 這是 base62 shrink 的結果,目的是為了減少程式碼 size
@abccbaandy min 不一定會 shrink 因為這樣效能比較差12F 01/20 17:11
jimmytzeng: 這是壓縮後的吧14F 01/20 18:49
DWR: 壓縮吧,考慮到傳輸量,不論網路&硬體設備再怎麼升級
可以省的還是要省15F 01/20 20:43
viper9709: 這是優化的一種方式17F 01/20 23:52
kofi0916: 謝謝大家說明,已用http://jsbeautifier.org/ 反壓縮回來18F 01/21 11:40

 
teemocogs:  長知識19F 01/21 19:57
robler: 這是用軟體壓縮的啦 人怎麼可能寫成這樣..20F 01/21 22:48

--
作者 kofi0916 的最新發文:
點此顯示更多發文記錄