返回

巧用try、catch实现JS代码加密

发布时间:2023-01-06 01:24:43 173
# javascript# java# java# 技术

巧用try、catch实现JS代码加密

本文分享一种奇特的JS代码加密解密方法。

技术原理

将JS代码加密,然后在try、catch错误捕捉语法中,用eval进行执行,能执行则表明解密成功,不能执行则意味着解密出错,此时会抛出错误,并由catch捕捉进行重新解密。

源码解析

加密部分:

巧用try、catch实现JS代码加密_js加密

解密部分:

巧用try、catch实现JS代码加密_js代码混淆加密_02

完整源码

/*加密部分*/
var source_string ='alert("JShaman提供专业的JavaScript代码混淆加密");';
var encoded_string = "";
function encode(){
for(var i=0;i<source_string.length;i++){
//异或加密每一个字符,异或密钥:61
encoded_string += String.fromCharCode(source_string.charCodeAt(i)^61);
}
alert(encoded_string);
console.log("加密完成:",encoded_string);
}
encode();
/*解密部分*/
//初始解密密钥,初始设为0,可为小于加密字符长度的任意值
var encode_key = 0;
//解密后的字符串,初始为加密值
var decoded_string = encoded_string;
function decode(){
try{

//eval执行,能执行则说明解密成功,因为原始代码是alert,是能正确执行的语句
eval(decoded_string);
console.log("解密成功:", decoded_string);
}catch(e){
decoded_string ="";
for(var i=0; i<encoded_string.length; i++){
decoded_string += String.fromCharCode(encoded_string.charCodeAt(i) ^ encode_key );
}
encode_key += 1;
decode();
}
}
decode();

二重加密

如果把以上代码,用JShaman再次进行混淆加密,将得到更加安全的加密代码:

巧用try、catch实现JS代码加密_js代码混淆加密_03

也可用Ty2y进行JS代码混淆加密:

巧用try、catch实现JS代码加密_js代码混淆加密_04

得到的加密代码:

巧用try、catch实现JS代码加密_h5加固_05

运行效果

巧用try、catch实现JS代码加密_js加密_06

注意事项

这是一种思路新奇的加密手段,但此方法有一定的使用条件限制:因解密时要依赖eval执行,因此被加密的语句需要是可执行的,比如需包裹在alert、console.log等等语句中。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线