分享

非常强的JavaScript代码混淆加密方案

 番茄炒西红柿饭 2022-07-20 发布于陕西

JavaScript代码混淆加密

前言:首先对于web端js代码要做到纯粹的加密处理是不存在的,只能说是混淆 使得代码根本无法阅读,进而达到“加密”的效果,没有最强的盾 只有不容易破的盾 众所周知,JavaScript大都是运行在浏览器端,这就导致任何人都可以直接对网站的代码进行查看,如果代码没有进行任何处理就会导致直接暴露源码,他人便可轻而易举的复制你的劳动成果,所以给大家介绍一下新出的代码混淆加密工具 safekodo。 网址为www.


safekodo混淆加密的几种类型

官网首页
如上述图片所示,safekodo提供的加密有:JavaScript代码加密、动态加密、多文件加密、API方式加密 等几种方案。

JavaScript代码加密

JavaScript代码加密为最常用的加密方式 ,可以在此处加密适用于网页端或者NODEJS的js代码,配置如下图所示(配置介绍将在下方进行阐述)
官网JavaScript代码加密

因为是演示所以就以官网提供的模板代码为例进行加密
官网例子
下图为加密后的代码:
加密后的代码

运行

加密运行

在html中引入使用 并测试禁止调试 屏蔽f12等
在这里插入图片描述

参数介绍

  • 首先可以看到“性能配置”有三个选项,建议是如果代码非常注重安全,且对性能要求较低时选择“最强加密”、如果对代码性能要求很高时选择“最佳性能”,当然也可以选择折中方案即“均衡加密”
  • 基本配置
    1. 迷惑代码注入(向提交的代码中注入迷惑代码块,用于迷惑干扰解密)
    2. 剔除console函数(剔除console函数,使得控制台无法通过console函数输出)
    3. 屏蔽键盘F12 (屏蔽浏览器的F12键,配合“禁用控制台调试”使用,以防止在配置了“禁用控制台调试”后正常用户误触导致F12导致浏览器卡死的情况)
    • 进阶配置
      1. 控制流扁平化(将代码结构改变,使得程序的逻辑复杂不易分析,大幅增加解密难度。)
      2. 禁用控制台调试(开启后无法通过控制台进行代码调试)
      3. 禁止代码格式化(开启后代码在格式化后将无法正常运行,如果开启了此配置导致代码无法运行请查看底部说明进行排除 )
      4. 混淆更改变量名、函数名(勾选后提交的代码中的函数名变量名,会被混淆。如涉及到多个js文件间的相互调用,请谨慎使用该功能。或在下方添加名称保留字)
    • 高级配置
    1. 代码运行环境 【可选浏览器 || NODE】
    2. 运行在非指定域名时【可选:禁止运行代码 || 跳转至指定网址】注意:此选项只有在添加了锁定域名时才可使用
    • 域名锁定:添加后只能在指定的域名内运行,多个子域名支持统一配置、支持前端通配符,如 *.
    • 名称保留字:当勾选了混淆变量函数名后,对于不想被混淆的变量名、函数名可在此处添加
    • 运行时间锁定:运行时间锁定,锁定后代码仅在指定时间段内可以运行 如果勾选该选项默认为一年

动态加密

动态加密

动态加密仅适用于web端js加密,需要上传一个js文件,加密后获得一个以script方式引入的script标签
您可直接在项目中粘贴引用,这样每次访问该网站时script标签引入的js都将是不同的且为加密后的js文件,从而达到动态加密的效果
动态加密
www.动态加密
动态加密运行示例
动态加密

参数介绍

与JavaScript代码加密 不同的是 高级配置中 引用方式可选 https || http

多文件加密

将多个js文件压缩为zip格式的压缩包 提交加密即可此处不演示了~ _ ~

API方式加密

以api形式发送post请求加密即可此处不演示了~ _ ~

特别注意事项

  • 当您使用safekodo 加密后代码运行出错错误类型为Uncaught ReferenceError: xxx is not defined。首先需要排除的是配置项中是否勾选了“混淆更改变量名、函数名”。如果勾选了此配置,可尝试取消勾选。或在“名称保留字”配置中添加。也可以修改未加密的js代码,将该方法或者变量定义为全局的。
  • 当您使用safekodo 加密后代码运行遇到无缘无故的运行无报错但也无效果时,首先要看的是是否允许在了指定的(即您配置的锁定域名)域名上运行。其次需要排查是否配置了运行时间锁定,如若配置了,请排查是否在配置的时间内运行。
  • 当您使用safekodo 加密后代码运行浏览器出现了卡死情况,请先排除是否配置了“禁用控制台调试”,在配置了该参数的情况下请排除是否开启了浏览器控制台,如若开启,请先关闭控制台,其次排除是否配置了“域名锁定”,并在该域名下运行代码。
  • 当您排除了以上情况,代码仍然无法运行或报的错误为其他情况时,请查看是否配置了“禁止代码格式化”,如果排除了是该配置导致的无法运行时,解决方案有两个:1、您可根据情况选择不使用该配置。2、当您仍需使用该配置时,在加密完代码后,粘贴到您的文件时需要注意如果您的开发者工具(例如您使用的是VSCode)如果设置了保存格式化时,请使用记事本或选择不会自动格式化代码的IDE打开文件进行代码粘贴,因为您的开发者工具在您粘贴后可能会自动进行格式化,导致代码无法运行!这个是比较容易出现的状况!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多