JavaScript/jQuery代码中十六进制转义数组采用的是哪种加密方式?
解答结论
这段代码没有使用任何加密方式,只是应用了JavaScript生态里最常见的基础代码混淆手段,不存在需要密钥解密的加密逻辑。
具体混淆手法说明
- 十六进制字符串转义:数组
_0xe66d内的元素都是普通ASCII字符串的\x开头十六进制转义写法,属于JavaScript原生支持的字符串语法,不需要特殊解密,直接按编码规则映射就能得到原文:- 索引0对应值:
SayHello - 索引1对应值:
GetCount - 索引2对应值:
Message : - 索引3对应值:
You are Welcome.
- 索引0对应值:
- 无意义标识符替换:将原代码里有明确语义的变量、参数名全部替换为
_0xe66d、_0xa79fx2这类无实际含义的名称,仅为提升人工阅读代码的门槛,没有任何加密防护作用。
代码还原结果
把混淆的标识符和字符串替换后,代码逻辑和以下原生写法完全等价,和jQuery无依赖关系:
function NewObject(msgPrefix) { var callCount = 0; this.SayHello = function(msgContent) { callCount++; alert(msgPrefix + msgContent); }; this.GetCount = function() { return callCount; }; } var obj = new NewObject("Message : "); obj.SayHello("You are Welcome.");
代码实际运行效果为:弹出内容为Message : You are Welcome.的浏览器提示框。
内容的提问来源于stack exchange,提问作者MusaPekel
相关产品推荐
相关产品推荐

