这个问题知道混淆绝不是保护代码的有效方法......
使用Gulp,我正在寻找一种方法来阻止我的应用内容以过于明显的方式显示。不操纵敏感数据,但我仍然不希望我的缩小代码看起来太明显无法修改。
尝试gulp-minify和gulp-uglify,但要么我使用它们都是错误的,要么它们不能满足我的需要。
需要: - 功能重命名 - 可变重命名 - 字符串混淆(至少防止字符串乍一看是人类可读的) - 不超过存储需求的2倍
建议的方法,线索,插件会是什么?
提前致谢,
答案 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。但是,这是一种商业工具。