我一直在创建Phonegap应用。我在网上和网上搜索,发现你无法隐藏Phonegap应用程序的代码。
我确实使用了混淆,这有助于保护代码。
有没有办法隐藏我正在使用的后端API URL链接? 即使在混淆之后,仍然可以使用指向服务器的链接。
有办法做到这一点吗?或解决方法?
答案 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代码,使其阅读更加复杂
我希望这对你有所帮助:)祝你好运!