JS加密/解密之js加密小工具

本文详细介绍了JavaScript加密的原理,包括压缩混淆、编码转换、加密解密技术,以及其优缺点。通过示例展示了如何使用简单的加密和解密函数,以及实际应用中加密JS代码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

JS加密的原理和方法

什么是JS加密

  • JS加密是一种将js代码转换成不易被阅读和修改的形式的技术
  • JS加密的目的是保护js代码的版权,防止被恶意篡改或盗用
  • JS加密的难度和效果取决于加密算法的复杂性和安全性

JS加密的常见方法

  • 压缩和混淆:将js代码的空格,换行,注释等无关字符删除,将变量名,函数名等重命名为随机字符,使代码变得紧凑和混乱
  • 编码和转换:将js代码的字符编码或转换成其他形式,如16进制,base64,unicode等,使代码变得不可读
  • 加密和解密:将js代码和一个密钥进行某种数学运算,如异或,加减乘除等,使代码变得无法直接执行,需要用相同的密钥和逆运算才能还原
  • 隐藏和执行:将加密后的js代码隐藏在其他地方,如图片,音频,视频等,或者分割成多个部分,然后用特殊的方式加载和执行,如eval,document.write等

JS加密的优缺点

  • JS加密的优点是可以提高js代码的安全性,防止被轻易破解和修改,保护开发者的利益和创意
  • JS加密的缺点是会增加js代码的大小和运行时间,降低js代码的性能和兼容性,可能引起浏览器的警告和拦截

JS加密的示例

// 定义一个密钥,可以自己修改
var key = "bing";

// 定义一个加密函数,将js代码转换成16进制的字符串
function encrypt(code) {
  var result = "";
  for (var i = 0; i < code.length; i++) {
    // 将每个字符和密钥的对应字符异或,然后转换成16进制
    var charCode = code.charCodeAt(i) ^ key.charCodeAt(i % key.length);
    var hexCode = charCode.toString(16);
    // 如果转换后的长度不足2位,补0
    if (hexCode.length < 2) {
      hexCode = "0" + hexCode;
    }
    // 拼接结果字符串
    result += hexCode;
  }
  return result;
}

// 定义一个解密函数,将16进制的字符串转换成js代码
function decrypt(hex) {
  var result = "";
  for (var i = 0; i < hex.length; i += 2) {
    // 将每两位16进制转换成10进制的数字
    var charCode = parseInt(hex.substr(i, 2), 16);
    // 将数字和密钥的对应字符异或,然后转换成字符
    var char = String.fromCharCode(charCode ^ key.charCodeAt((i / 2) % key.length));
    // 拼接结果字符串
    result += char;
  }
  return result;
}

// 定义一个要加密的js代码,可以自己修改
var code = "alert('Hello, this is Bing!');";

// 调用加密函数,得到加密后的字符串
var encrypted = encrypt(code);

// 调用解密函数,得到解密后的字符串
var decrypted = decrypt(encrypted);

// 打印加密后和解密后的字符串,可以看到它们是一样的
console.log(code);
console.log(decrypted);

// 调用加密后的eval函数,执行加密后的代码
var eval = function (x) {
  return Function(decrypt(x))();
};
eval(encrypted);

如果需要更多的定制化[JS加密],或想要还原某些加密,可以联系官网客服。

保护您的js代码; 演示代码: function Save_View() { var idx =document.getElementById("idx");//项目ID var xmmc =document.getElementById("xmmc");//项目名称 var szqy =document.getElementById("szqy");//所在区域 var kfsmc =document.getElementById("kfsmc");//开发商名称 var xxdz =document.getElementById("xxdz");//详细地址 var zjzmj =document.getElementById("zjzmj");//总建筑面积 if(xmmc.value=="") { alert("请填写项目名称"); xmmc.focus(); return false; } if(kfsmc.value=="") { alert("请填写开发商名称"); kfsmc.focus(); return false; } if(xxdz.value=="") { alert("请填写详细地址"); xxdz.focus(); return false; } if(zjzmj.value=="") { alert("请填写总建筑面积"); zjzmj.focus(); return false; } } 加密后代码: function Save_View() { var Jy_eNph1 =window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"]("\x69\x64\x78");//项目ID var E2 =window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"]("\x78\x6d\x6d\x63");//项目名称 var gEXwty3 =window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"]("\x73\x7a\x71\x79");//所在区域 var jH4 =window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"]("\x6b\x66\x73\x6d\x63");//开发商名称 var bbSRLoGP5 =window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"]("\x78\x78\x64\x7a");//详细地址 var dY_boQtws6 =window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"]("\x7a\x6a\x7a\x6d\x6a");//总建筑面积 if(E2["\x76\x61\x6c\x75\x65"]=="") { window["\x61\x6c\x65\x72\x74"]("\u8bf7\u586b\u5199\u9879\u76ee\u540d\u79f0"); E2["\x66\x6f\x63\x75\x73"](); return false; } if(jH4["\x76\x61\x6c\x75\x65"]=="") { window["\x61\x6c\x65\x72\x74"]("\u8bf7\u586b\u5199\u5f00\u53d1\u5546\u540d\u79f0"); jH4["\x66\x6f\x63\x75\x73"](); return false; } if(bbSRLoGP5["\x76\x61\x6c\x75\x65"]=="") { window["\x61\x6c\x65\x72\x74"]("\u8bf7\u586b\u5199\u8be6\u7ec6\u5730\u5740"); bbSRLoGP5["\x66\x6f\x63\x75\x73"](); return false; } if(dY_boQtws6["\x76\x61\x6c\x75\x65"]=="") { window["\x61\x6c\x65\x72\x74"]("\u8bf7\u586b\u5199\u603b\u5efa\u7b51\u9762\u79ef"); dY_boQtws6["\x66\x6f\x63\x75\x73"](); return false; } } 变量完全是随机的,很好很实用。 喜欢就下载喽··~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值