阅读完本文后你可能会感觉到你对 JavaScript 的力量一无所知!
下面来看看这是一种什么样的加密方式吧!
该加密方式的作者是来自日本的:Yosuke HASEGAWA
他的项目地址:http://utf-8.jp/public/aaencode.html
我们通过该方法 加密一串 JS 代码: alert(“HelloWorld!”);
function aaencode ( text )
{
var t;
var b = [
"(c^_^o)" ,
"(゚Θ゚)" ,
"((o^_^o) - (゚Θ゚))" ,
"(o^_^o)" ,
"(゚ー゚)" ,
"((゚ー゚) + (゚Θ゚))" ,
"((o^_^o) +(o^_^o))" ,
"((゚ー゚) + (o^_^o))" ,
"((゚ー゚) + (゚ー゚))" ,
"((゚ー゚) + (゚ー゚) + (゚Θ゚))" ,
"(゚Д゚) .゚ω゚ノ" ,
"(゚Д゚) .゚Θ゚ノ" ,
"(゚Д゚) ['c']" ,
"(゚Д゚) .゚ー゚ノ" ,
"(゚Д゚) .゚Д゚ノ" ,
"(゚Д゚) [゚Θ゚]"
] ;
var r = "゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); " ;
if ( /ひだまりスケッチ×(365|356)\s*来週も見てくださいね[!!]/ . test ( text ) ) {
r += "X=_=3; " ;
r += "\r\n\r\n X / _ / X < \"来週も見てくださいね!\";\r\n\r\n" ;
}
r += "(゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);" +
"(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] " +
",゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] " +
",゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];" +
"(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];" +
"(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];" +
"(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + " +
"((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+" +
"((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+" +
"((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+" +
"((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];" +
"(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+" +
"((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+" +
"((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; " +
"(゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\\\'; " +
"(゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];" +
"(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];" +
"(゚Д゚) [゚o゚]='\\\"';" +
"(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+" ;
r += "(゚Д゚)[゚o゚]+ " ;
for ( var i = 0 ; i < text. length; i++ ) {
n = text. charCodeAt ( i ) ;
t = "(゚Д゚)[゚ε゚]+" ;
if ( n <= 127 ) {
t += n. toString ( 8 ) . replace ( /[0-7]/g , function ( c) { return b[ c ] + "+ " ; } ) ;
} else {
var m = /[0-9a-f]{4}$/ . exec ( "000" + n. toString ( 16 ) ) [ 0 ] ;
t += "(o゚ー゚o)+ " + m. replace ( /[0-9a-f]/gi , function ( c) { return b[ parseInt ( c, 16 ) ] + "+ " ; } ) ;
}
r += t;
}
r += "(゚Д゚)[゚o゚]) (゚Θ゚)) ('_');" ;
return r;
}
是的我们得到了一堆可爱的表情包!!!
゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
然而这些表情包可没有你想象的那么可爱,他也同样具有杀伤力!!!
他对应的解密方法为
function decrypt ( text) {
var evalPreamble = "(\uFF9F\u0414\uFF9F) ['_'] ( (\uFF9F\u0414\uFF9F) ['_'] (" ;
var decodePreamble = "( (\uFF9F\u0414\uFF9F) ['_'] (" ;
var evalPostamble = ") (\uFF9F\u0398\uFF9F)) ('_');" ;
var decodePostamble = ") ());" ;
text = text. replace ( /^\s*/ , "" ) . replace ( /\s*$/ , "" ) ;
if ( /^\s*$/ . test ( text) ) {
return "" ;
}
if ( text. lastIndexOf ( evalPreamble) < 0 ) {
throw new Error ( "Given code is not encoded as aaencode." ) ;
}
if ( text. lastIndexOf ( evalPostamble) != text. length - evalPostamble. length) {
throw new Error ( "Given code is not encoded as aaencode." ) ;
}
var decodingScript = text. replace ( evalPreamble, decodePreamble)
. replace ( evalPostamble, decodePostamble) ;
return eval ( decodingScript) ;
}