Javascript文件名加密和引用

时间:2012-03-23 00:16:40

标签: javascript encryption obfuscation

我想更改应用程序中的JavaScript名称,以获得额外的安全性,例如facebook和google plus suring部署。

是否有应用程序或库可以更改JavaScript文件名并在我的视图(用php编写)和JavaScript文件中引用它们。


期望效果的例子

更改此项(部署前):

在文件夹中:js / myfunction.js

在档案中:<script type="text/javascript" src="https://mysite.com/myfunction.js"></script>

到此(部署后):

在文件夹中:js / PuKJS78UyH.js

在档案中:<script type="text/javascript" src="https://mysite.com/PuKJS78UyHK.js"></script>

2 个答案:

答案 0 :(得分:1)

您应该考虑优化,而不是混淆和加密。你可以做几件事:

  1. 将所有常见的JS文件合并到一个文件中(最小化请求数量并解决您的问题 - 没有文件名可以进行模糊处理)
  2. 最小化JS - 它更快,占用更少的空间(此外它变得不可读)
  3. 此工具似乎是一个很好的起点:http://code.google.com/p/minify/

答案 1 :(得分:0)

  

不应该依赖于JavaScript加密。它不安全,可能会在短时间内被黑。使用像PHP这样的服务器端语言比JavaScript更安全。

但是,如果您想在JavaScript中执行简单的base-64编码,普通人无法阅读,您很幸运,它不需要任何库。 \(^o^)/

只需使用btoa()进行编码,使用atob()进行解码。然后,您可以使用编码的网址创建<script>代码。

在MDN中阅读更多内容:window.atob

示例:

var txt = "myfunction.js";
var encode = btoa(txt);
var decode = atob(encode);
console.log( encode );  //return "bXlmdW5jdGlvbi5qcw=="
console.log( decode );  //return "myfunction.js" (orginal)

//Do whatever you want with the encoded text, like
$("<script src='/js/"+encode+".js' type='text/javascript'></script>")
    .appendTo("head");  //dynamically adding an script tag using jQuery

演示:http://jsfiddle.net/DerekL/JWSUs/

结果:
result

  

来自jsFiddle的结果。您可以看到“myfunction.js”编码为“bXlmdW5jdGlvbi5qcw ==”,普通人无法阅读。