2011-04-29 95 views
0

我想写两个简单的工具:如何实现二进制到ASCII转换? (反之亦然)

  1. 接收二进制文件,并将其转换为文本文件(ASCII格式)。
  2. 接收上述文件格式的文本文件并恢复原始二进制文件。

我需要这个的原因是非常愚蠢的,但仍然是一个原因。我有两台电脑 - 一台上网,另一台没有。我在没有互联网的软件上编写软件。我收到第二封电子邮件。我需要将二进制文件从一个传输到另一个(例如罐子),但它们之间的唯一通信是剪贴板(仅限文本)。

可能是一个非常本地化的问题 - 但我认为它在数据加密/压缩/网络传输领域有一些解决方案。

我能想出的唯一办法是检查二进制文件并将每个字节转换为十六进制表示 - 因此对于每个字节,我将得到两个ASCII字符(即两个字节)。有更好的吗? (该解决方案一倍信息的数量和可能无法通过剪贴板转移)

一个限制 - 我需要它作为一个基于Java的解决方案(我想把它写我自己)

+1

为了什么罪女巫已经瘫痪你的设置是这样的? o_O – 2011-04-29 18:26:56

+0

全公司范围内的政策 - 我只是作为员工的责任去寻找后门...... – RonK 2011-04-29 18:28:05

+0

此剪贴板是什么样子的?如果它通过某种网络,如果你劫持了这个连接,它可能会更好。 – corsiKa 2011-04-29 18:32:27

回答

1

谷歌为Base64编码,并使用Apache公共编解码器来准备使用实现。

+0

你可以请添加一些更多的细节? “Google for Base64”是什么意思? – RonK 2011-04-29 18:37:52

+0

您正在阅读二进制文件并使用base64进行编码。这将base64文件的所有内容编码为文本(值为64个不同的字符)。这是可复制的。另一方面,base64将其解码为二进制。 – nojo 2011-04-29 19:22:57

+0

@Ronk:致Google:使用网络浏览器并使用Google搜索某物的行为。 Base64是一种用ASCII编码二进制数据的方法。需要4个字符来编码3个字节的二进制数据,这比Hex编码更有效。 Apache commons编解码器具有这种编码/解码算法的实现。 – 2011-04-29 21:19:46

相关问题