-5

以下是我所知道的...

这个“GxvS117MfVw=”解码后变成“56699”

现在这个“+sB6hF46GyU=”变成“??????”

“ 不包含

我尝试了base64解码器,它似乎不正确。它应该是一个数字。我不确定长度,我认为它不应该超过 5 个数字。如果您能为我解码并告诉我如何解码,我将不胜感激。谢谢!!

编辑:

我知道这可能是数据不足,因为这是我的第一篇文章。好吧,我认为它是 php,它的编码是这样的

pubcredentials.php?id=GxvS117MfVw=

请提供您需要的信息,我会尽我所能得到它

编辑1:

我又得到了一个“L0sgBFUTpsE=”变成了“53096”

“ 不包含

有人问我为什么“L0sgBFUTpsE=”会变成“53096”只是为了让你知道我没有解码这个。当我能够在他们更改解码方法之前对其进行解码时,我可以使用此信息。所以这些都是真的!

4

2 回答 2

3

如果数据代表 Base-64 编码材料,则字符串中编码的字节为:

$ b64 -d "+sB6hF46GyU=" 
Base64:
0x0000: +sB6hF46GyU=
Binary:
0x0000: FA C0 7A 84 5E 3A 1B 25 00                        ..z.^:.%.
$

作为参考,同一程序将另一组解码为:

$ b64 -d "GxvS117MfVw="
Base64:
0x0000: GxvS117MfVw=
Binary:
0x0000: 1B 1B D2 D7 5E CC 7D 5C 00                        ....^.}\.
$

因此,我不确定您是如何得出您在问题中声称的答案 56699 的。

我需要使用 Base-64 的东西,并编写程序以满足我当时的特殊需求。

有关 Base 64 的详细信息,请参阅RFC3548

每组 4 个 Base-64 编码字符代表 1-3 个字节的二进制(未编码)数据。您给出的字符串都是 12 字节长,代表 7-9 字节的二进制数据。字符串实际上只编码 8 个字节;最后的“=”意味着不存在第 9 个字节。

来自 RFC:

               Table 1: The Base 64 Alphabet

  Value Encoding  Value Encoding  Value Encoding  Value Encoding
      0 A            17 R            34 i            51 z
      1 B            18 S            35 j            52 0
      2 C            19 T            36 k            53 1
      3 D            20 U            37 l            54 2
      4 E            21 V            38 m            55 3
      5 F            22 W            39 n            56 4
      6 G            23 X            40 o            57 5
      7 H            24 Y            41 p            58 6
      8 I            25 Z            42 q            59 7
      9 J            26 a            43 r            60 8
     10 K            27 b            44 s            61 9
     11 L            28 c            45 t            62 +
     12 M            29 d            46 u            63 /
     13 N            30 e            47 v
     14 O            31 f            48 w         (pad) =
     15 P            32 g            49 x
     16 Q            33 h            50 y

所以,'GxvS' 是:

6        49       47       18
000110   110001   101111   010010

重组:

000110.11  0001.1011   11.010010

解释为十六进制:

0x1B  0x1B  0xD2

这是我的程序作为前三个字节给出的。

如果我不得不猜测,你有一个用 Base-64 而不是十进制编码的 8 字节“整数”。而且它不是直接映射到 56699;它是某种与 ID 56699 相关联的会话标识符。

于 2010-06-02T07:35:02.473 回答
1

即使字符串看起来像-base64编码- 基于上面示例中给出的字符集和=字符串末尾的独特字符 - 转换56699 --> GxvS117MfVw=可能包括几个步骤,包括压缩和/或加密算法base64最后一步是-encoding。

所以正如VeeBee所说:没有任何进一步的信息,就不可能确定返回所需的步骤GxvS117MfVw= --> 56699

于 2010-06-02T07:35:49.540 回答