首页 > 其他分享 >JS加密/解密之js加密小工具

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

时间:2024-01-11 19:32:01浏览次数:18  
标签:加密 16 代码 JS var js

JS加密/解密之js加密小工具_16进制

JS加密的原理和方法

什么是JS加密

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

JS加密的常见方法

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

JS加密的优缺点

  • JS加密的优点是可以提高js代码的安全性,防止被轻易破1解和修改,保护开发者的利益和创意
  • 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加密,或想要还原某些加密,可以联系官网客服。

标签:加密,16,代码,JS,var,js
From: https://blog.51cto.com/u_15785573/9202670

相关文章

  • VSCode 终端显示“pnpm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此
    如果出现以下问题: 解决方案:1.用get-ExecutionPolicy命令在vscode终端查询状态get-ExecutionPolicy#返回Restricted说明状态是禁止的Restricted2.用set-ExecutionPolicyRemoteSigned命令更改状态即可set-ExecutionPolicyRemoteSigned此时再输入 get-ExecutionP......
  • node.js 安装与环境变量配置
    一、安装node.js官网:下载地址 历史版本:历史版本下载地址    下载完毕后,可以安装node,一路默认选项即可。这里我的安装路径是:D:\environment\nodejs。建议不要安装在系统盘(如C:),建议安装的路径不要有中文。 二、设置nodejsprefix(全局)和cache(缓存)路径1、新建文件夹:n......
  • vue使用flexible.js 最大宽度只有540
    分辨率大于540px的时候,flexible限制为540,一般的手机显示没有问题,但对于大于540的竖屏屏幕,可能右边就会留白。我想让横屏的时候限制在540,竖屏的时候根据页面实际宽度自适应,解决方法如下:1、安装npminstalllib-flexible--save 2、为了避免每次安装的时候,都被覆盖掉,打开\nod......
  • 【js手写】手写目录
    实现防抖(debounce)和节流(throttle)函数  https://www.cnblogs.com/lishuxuan/p/17339575.html实现call函数,apply函数,bind函数  https://www.cnblogs.com/lishuxuan/p/17339575.html实现js对象扁平化   https://www.cnblogs.com/lishuxuan/p/17356804.html实现深拷贝函......
  • dremio+nessie+dbt+ cube.js 实现简单数据服务
    以前我简单写过关于dremio与cube.js集成的,随着dremio官方自己维护了一个dbt的adapter以及nessie方便的类似git的多版本元数据服务的提供,将这几个集成在一起是一个很不错的选择,尤其是希望实现自己的headlessbi服务,同时利用dbt强大的数据建模能力,可以实现数据模型开发的工......
  • 如何在电脑上文件加密?
    在电脑上进行文件加密有多种方法,包括操作系统内建的工具、第三方的加密软件以及专业的数据防泄密系统等。详细步骤如下:使用操作系统内建的工具进行文件加密Windows上的加密文件系统(EFS):右键点击需要加密的文件或文件夹,选择“属性”->“高级”->勾选“加密内容以保护数据”;......
  • 少见但非常好用的js写法技巧。
    1.使用flatMap数组方法 flatMap() 本质上是 map()和 flat() 的组合,区别在于 flatMap 只能扁平1级,flat可以指定需要扁平的级数,flatmap比分别调用这两个方法稍微高效一些。constarr=[1,2,[4,5],6,7,[8]];console.log(arr.flatMap((element)=>element));......
  • 未经授权访问 .js
    流程顺序:后台管理登陆地址→后台主页地址→fuzz测试出用户管理列表接口→直接调接口。。全程黑盒。那么接下来我逆着来推理下逻辑:首先是拿到某后台管理登录的网址 接着查看html源码,发现首页地址,http://xxx/index直接访问,访问302,然后大哥来......
  • 如何构建一个 NodeJS 影院微服务并使用 Docker 部署
    如何构建一个NodeJS影院微服务并使用Docker部署前言如何构建一个NodeJS影院微服务并使用Docker部署。在这个系列中,将构建一个NodeJS微服务,并使用DockerSwarm集群进行部署。以下是将要使用的工具:NodeJS版本7.2.0MongoDB3.4.1DockerforMac1.12.6在尝试......
  • js 垃圾回收机制
    一、概述垃圾回收机制是为了防止内存的泄漏(已经不需要的某一块内存还一直存在着),垃圾回收机制就是不停歇的寻找这些不再使用的变量,并且释放掉他所指向的内存。2、变量的生命周期变量被声明、赋值(修改)、读取、不需要时释放,是变量的生命周期。js中的变量分为局部变量和全局变量。......