Phonegap隐藏后端URL链接代码

时间:2015-07-25 13:53:48

标签: javascript android cordova phonegap-build

我一直在创建Phonegap应用。我在网上和网上搜索,发现你无法隐藏Phonegap应用程序的代码。

我确实使用了混淆,这有助于保护代码。

有没有办法隐藏我正在使用的后端API URL链接? 即使在混淆之后,仍然可以使用指向服务器的链接。

有办法做到这一点吗?或解决方法?

1 个答案:

答案 0 :(得分:0)

我已经使用过这个算法,并根据自己的目的进行调整,但我们以此为例:

http://www.mvjantzen.com/blog/?p=1005

你有你的钥匙

var key = function () {
    return 'SXGWLZPDOKFIVUHJYTQBNMACERxswgzldpkoifuvjhtybqmncare';
};

Decrypt
var _decodeStr = function(coded) {
    coded = decodeURIComponent(coded);
    var uncoded = '';
    var chr;
    for (var i = coded.length - 1; i >= 0; i--) {
        chr = coded.charAt(i);
        uncoded += (chr >= 'a' && chr <= 'z' || chr >= 'A' && chr <= 'Z') ?
            String.fromCharCode(65 + key().indexOf(chr) % 26) :
            chr;
    }
    return uncoded.toLowerCase();
};

Encrypt
var _encodeStr = function(uncoded) {
    uncoded = uncoded.toUpperCase().replace(/^\s+|\s+$/g,'');
    var coded = '';
    var chr;
    for (var i = uncoded.length - 1; i >= 0; i--) {
        chr = uncoded.charCodeAt(i);
        coded += (chr >= 65 && chr <= 90) ?
            key.charAt(chr - 65 + 26*Math.floor(Math.random()*2)) :
            String.fromCharCode(chr);
    }
    return encodeURIComponent(coded);
}


var encodedUrl = _encodeStr('http://www.whateverul.com/api/call/');
_decodeStr(encodedUrl); // fake encrypted url

所以你编码的网址,你可以在任何你想使用的地方使用它,只需用解码器调用它,

从源文件中删除编码器。

这为人们提供了一种方式,当他们搜索代码中的http:///或api.bla.com/call等通用行时,很难找到它。

但你不能完全隐藏它,这只是让它变得有点困难,我在我的phonegap应用程序中使用这种方法,我也不使用明确的函数名称,不要将你的函数命名为encryptedUrlDecoder()或者其他东西: P 即使你这样做,他们也可以随时嗅出拨出电话等,但这有点帮助(至少当有人反向编译你的代码时)

加密后混淆/最小化你的js代码,使其阅读更加复杂

我希望这对你有所帮助:)祝你好运!