在Gulp

时间:2017-05-22 14:02:21

标签: javascript gulp obfuscation

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

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

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

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

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

提前致谢,

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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);
    }

答案 2 :(得分: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'));

答案 3 :(得分:0)

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