js encodeuri转码和解码教程如下:
输入一段html代码
实现结果:将代码加密
js实现代码如下:
/*! JSFuck 0.4.0 - http://jsfuck.com */
(function(self){
var USE_CHAR_CODE = "USE_CHAR_CODE";
var MIN = 32, MAX = 126;
var SIMPLE = {
'false': '![]',
'true': '!![]',
'undefined': '[][[]]',
'NaN': '+[![]]',
'Infinity': '+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]]+[+[]])' // +"1e1000"
};
var CONSTRUCTORS = {
'Array': '[]',
'Number': '(+[])',
'String': '([]+[])',
'Boolean': '(![])',
'Function': '[]["filter"]',
'RegExp': 'Function("return/0/")()'
};
var MAPPING = {
'a': '(false+"")[1]',
'b': '(+(11))["toString"](20)',
'c': '([]["filter"]+"")[3]',
'd': '(undefined+"")[2]',
'e': '(true+"")[3]',
'f': '(false+"")[0]',
'g': '(+false+[false]+String)[20]',
'h': '(+(101))["toString"](21)[1]',
'i': '([false]+undefined)[10]',
'j': '(+(40))["toString"](21)[1]',
'k': '(+(20))["toString"](21)',
'l': '(false+"")[2]',
'm': '(Number+"")[11]',
'n': '(undefined+"")[1]',
'o': '(true+[]["filter"])[10]',
'p': '(+(211))["toString"](31)[1]',
'q': '(+(212))["toString"](31)[1]',
'r': '(true+"")[1]',
's': '(false+"")[3]',
't': '(true+"")[0]',
'u': '(undefined+"")[0]',
'v': '(+(31))["toString"](32)',
'w': '(+(32))["toString"](33)',
'x': '(+(101))["toString"](34)[1]',
'y': '(NaN+[Infinity])[10]',
'z': '(+(35))["toString"](36)'