我已经使用 base64 方法加密了我的 JavaScript 代码,如下所示。但是当我使用 document.ready 运行编码函数时,JavaScript 函数并没有做它应该做的事情。
我如何意识到加密的代码将被解密并开始运行该功能?
先感谢您!:)
我已经使用 base64 方法加密了我的 JavaScript 代码,如下所示。但是当我使用 document.ready 运行编码函数时,JavaScript 函数并没有做它应该做的事情。
我如何意识到加密的代码将被解密并开始运行该功能?
先感谢您!:)
只需eval
在解码的字符串上使用。
使用代码的示例alert("test");
:
eval(decode64('YWxlcnQlMjglMjJ0ZXN0JTIyJTI5JTNC'));
演示:http: //jsfiddle.net/uFxnz/
注意:使用该eval
函数与不安全和低效的代码相关联,但在这种情况下,您可以尽可能多地控制代码的来源,因此它只是按照您的意愿行事。
..您可以使用以下简单程序。
但是,请记住,它不提供任何安全性。但这并不意味着没有用例。加密为 base64 字符串对于可共享性或当您想要创建时非常有意义,例如小书签(从网络地址栏运行的代码javascript:eval(atob('...'))
。
现在,假设这是您的代码:
// commentary, Yaaay!
var myObj = {
foo : function() { alert("Baz!")} ,
html : "<div id='myDIV'></div>", // it's ["'] proof
bar : 123
};
myObj.foo();
1. var base64Fun = btoa((function(){
2. // commentary, Yaaay!
3. var myObj = {
4. foo : function() { alert("Baz!")} ,
5. html : "<div id='myDIV'></div>", // it's ["'] proof
6. bar : 123
7. };
8. myObj.foo();
9. }).toString().slice(13,-2))
请注意,我只添加了行1
和9
,其余的是您的代码,完好无损。
eval(atob(base64Fun));
eval(atob("Ly8gY29tbWVudGFyeQp2YXIgbXlPYmogPSB7Cglmb28gOiBmdW5jdGlvbigpIHsgYWxlcnQoIkJheiEiKX0gLAoJaHRtbCA6ICI8ZGl2IGlkPSdteURJVic+PC9kaXY+IiwKCWJhciA6IDEyMyAKfTsKbXlPYmouZm9vKCk7"));
btoa()
并且atob()
并非所有浏览器都支持,但是..