UNPKG

2.92 kBJavaScriptView Raw
1/**
2 * @see http://utf-8.jp/public/aaencode.html
3 */
4function aaencode(text) {
5 function f1(c) {
6 return b[c] + "+ ";
7 }
8
9 function f2(c) {
10 return b[parseInt(c, 16)] + "+ ";
11 }
12
13 var t;
14 var b = [
15 "(c^_^o)",
16 "(゚Θ゚)",
17 "((o^_^o) - (゚Θ゚))",
18 "(o^_^o)",
19 "(゚ー゚)",
20 "((゚ー゚) + (゚Θ゚))",
21 "((o^_^o) +(o^_^o))",
22 "((゚ー゚) + (o^_^o))",
23 "((゚ー゚) + (゚ー゚))",
24 "((゚ー゚) + (゚ー゚) + (゚Θ゚))",
25 "(゚Д゚) .゚ω゚ノ",
26 "(゚Д゚) .゚Θ゚ノ",
27 "(゚Д゚) ['c']",
28 "(゚Д゚) .゚ー゚ノ",
29 "(゚Д゚) .゚Д゚ノ",
30 "(゚Д゚) [゚Θ゚]"
31 ];
32 var r = "゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); ";
33 r += "(゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);" +
34 "(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] " +
35 ",゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] " +
36 ",゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];" +
37 "(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];" +
38 "(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];" +
39 "(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + " +
40 "((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+" +
41 "((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+" +
42 "((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+" +
43 "((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];" +
44 "(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+" +
45 "((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+" +
46 "((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; " +
47 "(゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\\\'; " +
48 "(゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];" +
49 "(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];" +
50 "(゚Д゚) [゚o゚]='\\\"';" +
51 "(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+";
52 r += "(゚Д゚)[゚o゚]+ ";
53 for (var i = 0; i < text.length; i++) {
54 var n = text.charCodeAt(i);
55 t = "(゚Д゚)[゚ε゚]+";
56 if (n <= 127) {
57 t += n.toString(8).replace(/[0-7]/g, f1);
58 }
59 else {
60 var m = /[0-9a-f]{4}$/.exec("000" + n.toString(16))[0];
61 t += "(o゚ー゚o)+ " + m.replace(/[0-9a-f]/gi, f2);
62 }
63 r += t;
64
65 }
66 r += "(゚Д゚)[゚o゚]) (゚Θ゚)) ('_');";
67 return r;
68}
69
70/**
71 * 代码加密
72 *
73 * @param {string} content 文本内容
74 * @return {string} 返回加密后的内容
75 * @example
76 * <~jdists encoding="aaencode"~>
77 * console.log('Hello world!');
78 * <~/jdists~>
79 */
80module.exports = function (content) {
81 return aaencode(content);
82};
\No newline at end of file