在Gulp中混淆Javascript代码的好方法[重复]

问题描述 投票:0回答:4

这个问题在这里已有答案:

这个问题知道混淆绝不是保护代码的有效方法......

使用Gulp,我正在寻找一种方法来防止我的应用内容以过于明显的方式出现。不操纵敏感数据,但我仍然不希望我的缩小代码看起来太明显无法修改。

一直在尝试gulp-minify和gulp-uglify,但要么我使用它们都是错误的,要么它们不能满足我的需要。

需要: - 函数重命名 - 变量重命名 - 字符串混淆(至少防止字符串乍一看是人类可读的) - 不超过存储需求的2倍

什么是建议的方法,线索,插件?

提前致谢,

javascript gulp obfuscation
4个回答
1
投票

试试这个:Javascript Obfuscator。据我所知,几乎不可能将混淆的代码恢复为原始代码。


0
投票

到目前为止,最有效的(在我的情况下)是管道以下代码,它只是应用字符旋转:

    function obfuscate(text, key, n = 126) {
        // return String itself if the given parameters are invalid
        if (!(typeof(key) === 'number' && key % 1 === 0)
            || !(typeof(key) === 'number' && key % 1 === 0)) {
            return text.toString();
        }

        var chars = text.toString().split('');

        for (var i = 0; i < chars.length; i++) {
            var c = chars[i].charCodeAt(0);

            if (c <= n) {
                chars[i] = String.fromCharCode((chars[i].charCodeAt(0) + key) % n);
            }
        }

        return chars.join('');
    },

    function defuse(text, key, n = 126) {
        // return String itself if the given parameters are invalid
        if (!(typeof(key) === 'number' && key % 1 === 0)
            || !(typeof(key) === 'number' && key % 1 === 0)) {
            return text.toString();
        }

        return obfuscate(text.toString(), n - key);
    }

0
投票

你可能想要考虑gulp-javascript-obfuscator。这是一个节点模块,版本^1.1.5对我来说非常好。它还可以选择使用以下代码进行缩小:

// Imports ...
obfuscator    = require('gulp-javascript-obfuscator') 

// ... Other code 

gulp.src('my_file.js')
.pipe(obfuscator({compact:true}))
.pipe(gulp.dest('dist'));

0
投票

您提到的所有需求都是Jscrambler提供的transformations。但是,它是一种商业工具。

© www.soinside.com 2019 - 2024. All rights reserved.