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

3
我正在处理一个项目,其中我获取了部分base64编码的数据,但不是全部。是否有可能弄清楚那部分base64编码数据是什么?
例如。假设我对“hello world”进行base64编码。
它变成“aGVsbG8gd29ybGQ=”。
但是,假设我只能捕获“sbG8gd29y”。
这将再次解码为“ݽ”。
我熟悉base64编码过程的工作原理,但我无法想到一种方法来确定base64编码消息的哪一部分没有添加数据,并与词典单词进行比较。 但问题是,我甚至不能100%确定我处理的数据包括词典单词。
谢谢

使用 mod 4 来指定 Base64 中正确的字符串长度。 - Paweł Piwowar
1个回答

6

我刚刚使用了一个在线转换器(http://www.convertstring.com/EncodeDecode/Base64Decode)。

如果您将捕获的部分放入转换器中,您会发现它的长度不符合Base64编码字符串的要求。

为了使捕获的部分长度有效,您需要添加一些额外的字符(根据该部分的长度,可以添加0-3个字符)。 一个有效的Base64字符串的长度正好是4的倍数。

选择一个字符('a' for example),并尝试添加正确数量的字符,前后两端都可以。通过添加这些字符,字符串将成为可解码的,而其中一个已解码的值将更易读,这就是具有部分解码数据的那个值。

例如:

   sbG8gd29yaaa
and
   aaasbG8gd29y

解码为:

   ����ݽɦ�
and
   i��lo wor

您可以通过计算字符串中“普通”字符(例如a-z)的数量来进行初步的可编程可读性测试。您需要自己判断什么是“正常”的,这将取决于数据的预期语言和上下文(例如,它是否已知仅为数字)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接