将执行计算的js文件分隔到另一个文件中

时间:2016-02-22 16:28:31

标签: javascript visual-studio cordova visual-studio-cordova

我正在构建一个Visual Studio 2015 Cordova应用程序。在这个应用程序中,我有4个js文件,提供使这个应用程序工作的所有计算。 我想将这些文件分开,只是像你想的那样引用它们。 我还听说在Cordova应用程序中,所有js文件都呈现为纯文本,这将显示使应用程序工作的计算结构。
基本上我想保护这些文件不被轻易查看。 由于我在Javascript和移动设备上工作,我不确定实现它的最佳方法。 感谢

2 个答案:

答案 0 :(得分:0)

分离文件并没有太大作用,事实上,将它们组合起来obfuscate代码将是最简单的方法。

更好但更多参与,您可以采用某种加密方式,使逆向工程更加困难。可以找到一篇好的文章here来回应SO Question。在这里发布确切的代码有点牵扯,它面向OS X开发环境,但我确信它可以适应。

基本上,您使用ffffffffffffffffffffffffffffffff之类的密钥加密源文件(PHP,但可以使用任何语言完成):

<?
function icrypt($plaintext, $key) {
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_ECB);
}
//usage:
$newHtml = icrypt('<html>Source File</html>', 'ffffffffffffffffffffffffffffffff');

然后让你的应用程序解密内存中的源文件(这需要对PhoneGap / Cordova进行一些更改),使用这样的方法(为了清晰起见,将其截断):

- (void) fetchKey:(char[]) key
{
    //ffffffffffffffffffffffffffffffff
    key[0] = 0x66;
    key[1] = 0x66;
    key[2] = 0x66;
    key[3] = 0x66;
    key[4] = 0x66;
    key[5] = 0x66;
    key[6] = 0x66;
    key[7] = 0x66;
    key[8] = 0x66;
    key[9] = 0x66;
...

这些文章可以更好地展示整个过程。

答案 1 :(得分:0)

您可能需要考虑将此敏感代码放入Web服务中,并从移动应用程序中调用它。您可以使用编译语言(如c#,c ++,java等)保护Web服务代码,或者如果您希望将当前工作保留在javascript中,请将其转换为nodejs模块以作为Web服务进行响应。