c***@163.com
c***@163.com
  • 发布:2021-06-09 16:38
  • 更新:2023-08-09 12:02
  • 阅读:7459

uni-app 发行H5如何混淆加密js代码

分类:uni-app

uni-app项目。发行H5 如何混淆加密代码

2021-06-09 16:38 负责人:无 分享
已邀请:
dear畅畅

dear畅畅

经过验证,在uniApp使用 webpack-obfuscator打包,有些配置不支持(增加后打出来包使用会报错)

/** 加密混淆代码 */  
      config.plugins.push( new JavaScriptObfuscator({  
        // 压缩代码(uniApp不能加)  
        // compact: true,  
        // 是否启用控制流扁平化(降低1.5倍的运行速度)  
        // controlFlowFlattening: true,  
        // 随机的死代码块(增加了混淆代码的大小)  
        // deadCodeInjection: true,  
        // 死代码块的影响概率(uniApp不能加)  
        // deadCodeInjectionThreshold: 0.4,  
        // 此选项几乎不可能使用开发者工具的控制台选项卡  
        // debugProtection: false,0  
        // 如果选中,则会在“控制台”选项卡上使用间隔强制调试模式,从而更难使用“开发人员工具”的其他功能。  
        // debugProtectionInterval: 0,  
        // 通过用空函数替换它们来禁用console.log,console.info,console.error和console.warn。这使得调试器的使用更加困难  
        disableConsoleOutput: false,  
        // 标识符的混淆方式 hexadecimal(十六进制) mangled(短标识符)  
        identifierNamesGenerator: 'hexadecimal',  
        // 打包是否展示log  
        log: true,  
        // 是否启用全局变量和函数名称的混淆  
        // renameGlobals: false,  
        /**  
         * 通过固定和随机(在代码混淆时生成)的位置移动数组。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难。  
         * 如果原始源代码不小,建议使用此选项,因为辅助函数可以引起注意。  
         */  
        rotateStringArray: true,  
        // 混淆后的代码,不能使用代码美化,同时需要配置 cpmpat:true; (uniApp不能加)  
        // selfDefending: true,  
        // 删除字符串文字并将它们放在一个特殊的数组中  
        stringArray: true,  
        stringArrayEncoding: ['base64'],  
        stringArrayThreshold: 0.75,  
        transformObjectKeys: false,  
        /**  
         * 允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,  
         * 并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项。  
         */  
        // unicodeEscapeSequence: false  
      }, []))

注意版本号

{  
  "devDependencies": {  
    "webpack-obfuscator": "2.6.0"  
    "javascript-obfuscator": "4.0.0",  
  }  
}
  • 1***@qq.com

    请问怎么配置是加在哪里呀 大佬

    2023-03-15 17:40

DCloud_UNI_GSQ

DCloud_UNI_GSQ

发行默认会压缩,如需进行特殊混淆,可以通过 vue.config.js 配置单独的 webpack 插件

c***@163.com

c***@163.com (作者)

百度的一些配置

  • p***@qq.com

    是不是webpack-obfuscator版本高了

    2022-01-08 12:25

5***@qq.com

5***@qq.com - 哈哈哈哈哈

老哥,这个问题解决了吗?我现在也遇到了同样的问题,各种不生效,请回复 qq599616881,看到了回复下,急需,

w***@xinboxinmo.com

w***@xinboxinmo.com

解决了么?

5***@qq.com

5***@qq.com

webpack-obfuscator版本2.6.0
使用了无效果?能够编译成功

5***@qq.com

5***@qq.com

找到不生效的原因了,webpack-obfuscator中的代码有这样一段:

if (!fileName.toLowerCase().endsWith('.js') || this.shouldExclude(fileName)) {  
    return;  
}

结尾必须是 .js。所以不能通过output重构js文件名,就算要重构文件名也要以.js结尾。

要回复问题请先登录注册