• 当前提交"JavaScript代码加密不设限制,如遇问题或有好的建议/意见,欢迎在右侧“联系我们”处提交问题
  • 当加密后的代码无法正常运行时,请先检查是否勾选了相关配置导致的,具体可查看网站底部的“加密后运行报错”进行排查。
function demo(){
    console.log('safekodo代码加密例子');
    console.log('注意:如果勾选了“剔除console函数”加密后该demo将不会打印输出这段文字哦~');
};
demo();
!function () {
    console.log('温馨提示:如您想在浏览器开发者工具中运行本示例代码加密后的代码,请先取消下方加密配置中的:“剔除console函数、禁止控制台调试”')
}(); 
温馨提示:如果您是初次使用,请先了解每一项配置的应用场景,否则可能导致加密后的代码无法正常运行!鼠标在配置项上悬停即可查看对应配置功能描述
如您在使用过程中遇到问题,欢迎点击屏幕右侧的联系我们处“提交问题”,最好有对应的复现代码,以便我们能更好的排查和解决问题😊
代码运行环境:浏览器
运行在非指定域名时:禁止运行代码
  • 锁定域名 格式应形如www.safekodo.com或safekodo.com。多个子域名支持统一配置、支持前端通配符,如 *.safekodo.com
  • 名称保留字
  • 运行时间锁定
严正声明

👉 safekodo不会保存您的任何代码,无论是您加密前还是加密后的代码所有权均归您所有。

👉 safekodo不会往加密后的代码中插入任何一段恶意代码。

👉 safekodo任何时候任何情况下都不会接受任何人的解密请求。无论您是免费用户还是赞助过我们的用户,均一视同仁。不会存在您付费了就类似交“保护费”了这种情况,所有用户一视同仁。

👉 safekodo当前为免费工具。如对您有帮助欢迎点击加密编辑器右上方“赞助我们”按钮。

👉 safekodo为您提供专业的JavaScript代码保护。旨在为更多网站提供专业的保护,早一分保护,多十分安全!

加密参数选择建议

强烈推荐您在加密时保留的参数:迷惑代码注入,剔除console函数,屏蔽键盘F12,控制流扁平化,禁用控制台调试,禁止代码格式化。 当您加密的当前代码与其他js文件不存在相互引用时,推荐您勾选"混淆变量名,函数名",当您与其他js文件存在引用时,您可在“名称保留字”中新增相互间应用的变量名或函数名。 当您为网站应用时,推荐您开启域名锁定。当您特别注重加密效果时,推荐您使用“最强加密”, 当您特别注重代码运行性能时推荐您使用“最佳性能”,当然您也可以选择折中方案即“均衡加密”。 当您希望控制您的代码仅在指定时间期限内可运行推荐您使用“运行时间锁定”。

在使用本工具进行代码加密时不要重复多次加密,即就是不要对加密后的代码进行再次加密,会造成加密安全性降低,加密一次即可。

当您使用safekodo 加密后代码运行遇到无缘无故的运行无报错但也无效果时,首先要看的是是否允许在了指定的(即您配置的锁定域名)域名上运行。其次需要排查是否配置了运行时间锁定,如若配置了,请排查是否在配置的时间内运行。

当您使用safekodo 加密后代码运行浏览器出现了卡死情况,请先排除是否配置了“禁用控制台调试”,在配置了该参数的情况下请排除是否开启了浏览器控制台,如若开启,请先关闭控制台,其次排除是否配置了“域名锁定”,并在该域名下运行代码。

当您排除了以上情况,代码仍然无法运行或报的错误为其他情况时,请查看是否配置了“禁止代码格式化”,如果排除了是该配置导致的无法运行时,解决方案有两个:1、您可根据情况选择不使用该配置。2、当您仍需使用该配置时,在加密完代码后,粘贴到您的文件时需要注意如果您的开发者工具(例如您使用的是VSCode)如果设置了保存格式化时,请使用记事本或选择不会自动格式化代码的IDE打开文件进行代码粘贴,因为您的开发者工具在您粘贴后可能会自动进行格式化,导致代码无法运行!这个是比较容易出现的状况!

禁止站点在iframe下运行

如您不希望您的站点被其他站点或诸如electron等通过iframe标签展现,常见的解决方式是在添加HTTP响应头,但这样仍然是可以被绕过的,如在electron中可以轻松的拦截修改响应头, 所以此时您可以勾选该选项,需要注意的是当前版本下勾选后无论是否是同源下均无法通过iframe加载站点。

严格模式

勾选后代码将在严格模式下运行,如加密后的产物是在小程序下运行,请勾选此选项。(如不勾选,需要在小程序开发者工具上编译时取消严格模式,这里注意,各家小程序叫法可能不一样,所以如果是在小程序端运行建议勾选严格模式)

加密后运行报错

当您使用safekodo 加密后代码运行出错错误类型为Uncaught ReferenceError: xxx is not defined。首先需要排除的是配置项中是否勾选了“混淆更改变量名、函数名”。如果勾选了此配置,可尝试取消勾选。或在“名称保留字”配置中添加。也可以修改未加密的js代码,将该方法或者变量定义为全局的。

当您使用safekodo 加密后代码运行遇到无缘无故的运行无报错但也无效果时,首先要看的是是否允许在了指定的(即您配置的锁定域名)域名上运行。其次需要排查是否配置了运行时间锁定,如若配置了,请排查是否在配置的时间内运行。

当您使用safekodo 加密后代码运行浏览器出现了卡死情况,请先排除是否配置了“禁用控制台调试”,在配置了该参数的情况下请排除是否开启了浏览器控制台,如若开启,请先关闭控制台,其次排除是否配置了“域名锁定”,并在该域名下运行代码。

当您排除了以上情况,代码仍然无法运行或报的错误为其他情况时,请查看是否配置了“禁止代码格式化”,如果排除了是该配置导致的无法运行时,解决方案有两个:1、您可根据情况选择不使用该配置。2、当您仍需使用该配置时,在加密完代码后,粘贴到您的文件时需要注意如果您的开发者工具(例如您使用的是VSCode)如果设置了保存格式化时,请使用记事本或选择不会自动格式化代码的IDE打开文件进行代码粘贴,因为您的开发者工具在您粘贴后可能会自动进行格式化,导致代码无法运行!这个是比较容易出现的状况!

寄语及代码编写建议

当您在编写代码时,可以在核心代码处进行“挖坑”操作,这样的代码在配合上safekodo的加密混淆可以达到最佳的加密效果。

尽管JavaScript代码高度自由的风格,在编写代码时,写不写分号和花括号是习惯问题,但是对于一些特定情况下(如代码中包含立即执行函数时)为书写分号会导致自己为自己挖下一个坑,对于JavaScript而言分号的意义就是代码语句的分割,在使用本工具加密时也会对代码进行压缩已达到体积最小化,为防止压缩后因为缺少分号导致的难以排查的错误,建议在书写时加上分号。

联系我们