是否可以对 Base64 编码消息的一部分进行 Base64 解码

Mik*_*hem 3 base64 encoding decode packet-capture

我正在开发一个项目,在该项目中我获取了部分 Base64 编码数据,但不是全部。是否有可能找出 Base64 编码数据的那部分是什么?

\n\n

例如。说我base64编码hello world

\n\n

它成为了aGVsbG8gd29ybGQ=

\n\n

但说我只能捕捉sbG8gd29y

\n\n

Base4 解码为哪个\xdd\xbd

\n\n

我熟悉base64编码过程的工作原理,并且我无法想出一种方法来找出base64编码消息的哪一部分,而无需将数据随机添加到正面和背面的块中并与字典单词进行比较,但问题是我我什至不能 100% 确定我正在使用的数据包含字典单词。

\n\n

谢谢

\n

Mar*_*k W 6

我刚刚花了一点时间使用在线转换器( http://www.convertstring.com/EncodeDecode/Base64Decode)\n如果您获取捕获的部分,您可以通过转换器运行它,并看到它对于 Base64 编码来说是无效的长度细绳。

\n\n

为了使捕获的部分具有有效的长度,您需要添加一些额外的字符(0-3,具体取决于该部分的长度)。有效的 base64 字符串的长度正好可以被 4 整除。

\n\n

选择一个字符(例如“a”),然后尝试向该部分的正面和背面添加正确数量的字符的可能性。添加字符后,字符串将可解码,并且解码值之一将更具可读性,即具有部分解码数据的值。

\n\n

例如:

\n\n
   sbG8gd29yaaa\nand\n   aaasbG8gd29y\n
Run Code Online (Sandbox Code Playgroud)\n\n

解码为:

\n\n
   \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xdd\xbd\xc9\xa6\xef\xbf\xbd\nand\n   i\xef\xbf\xbd\xef\xbf\xbdlo wor\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以通过计算字符串中“正常”字符的数量(例如 az)来进行基本的可读性编程测试。您需要自己决定什么是“正常”,这取决于数据的预期语言和上下文(例如,是否已知仅是数字)。

\n