javascript - 如何使用 JavaScript 从 base64 编码解码文件

标签 javascript file base64

我的公司有一个与工作相关的非常严格的内部网,该网络只有一个入口允许文件进出。门口的安全性不允许特殊类型的文件(仅限 *.txt、*.doc 等),即使在那些特定类型的文件中,它也会搜索批准文件确实是那种类型的模式。 (您不能简单地将 *.zip 文件伪装成 *.doc 文件。)

作为一个安全项目,我被告知要找到一种绕过该系统的方法,并插入一个显示 'Hello World' 的 C 语言 .exe 文件。

我的想法是将扩展名改为.txt,并对其进行base64编码,以便系统更容易接受。问题是,一旦它进入,如何对其进行解码。从表面上看,这很容易,PHP 或任何其他体面的语言都可以为我完成。然而,在那里,我可以访问的唯一真正的语言是 JavaScript(在 IE6 上,也许在 IE8 上)。

那么问题如下,我可以用JavaScript从文件系统中读取一个文件,解码,然后写回吗?或者至少为我显示结果?

请注意,我不要求对消息进行解码/编码,这很简单,我希望对文件进行解码和编码。

谢谢。

最佳答案

JSON可能是您正在寻找的答案。它实际上可以做到这一点。

  1. 将您的 txt 文件编码为 JSON 格式。很有可能通过贵公司的门口安检

    var myJsonData = { "text" : "SGVsbG8sIHdvcmxkIQ==" };  // <-- base64 for "Hello, world!"
    
  2. 使用纯 html 脚本语法导入您的 txt 文件

    <script src="hello.txt" type="text/javascript"> </script>
    
  3. 就是这样!现在您可以使用语法访问 JSON 对象:

    alert(myJsonData.text);
    
  4. 要完成您的工作,请获取 this简单的 Javascript base64 解码器。

  5. 大功告成。这是我使用的(非常简单的)代码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <title></title>
    
      <script src="base64utils.js" type="text/javascript"> </script>
      <script src="hello.txt" type="text/javascript"> </script>
    
      <script type="text/javascript">
        function helloFunction() {
        document.getElementById("hello").innerHTML = decode64(myJsonData.text);
        }
      </script>
    
      </head>
      <body onload="helloFunction();">
        <p id="hello"></p>
      </body>
    </html>
    

关于javascript - 如何使用 JavaScript 从 base64 编码解码文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284529/

相关文章:

JavaScript 如何确定 AJAX 调用何时在循环中完成

java - 使用java加载和处理非常大的文件

java - 为什么对 Base64 类的调用会返回不同的结果?

java - 文件处理

java - Windows 7 - 将文件类型与 Jar 程序相关联

javascript - Phonegap 编码图像 base64

css - 使用 base64 svg 图片作为 css 内容源

javascript - 链式调用同一个函数并修改一个内部变量

javascript - 如何从目录中删除所有文件而不删除 Node.js 中的目录

javascript - 当系列名称没有归因于它的值时隐藏类别 highchart