这就是我所知道的......
解码时“GxvS117MfVw =”变为“56699”
现在这个“+ sB6hF46GyU =”会变成“?????”
“不包括
我试过base64解码器,但似乎不对。它应该是一个数字。我不确定长度,我不认为它应该超过5个数字。如果你能为我解码它并向我展示如何,我将非常感激。谢谢!!
修改
我知道这可能是数据不足,因为这是我的第一篇文章。嗯,我认为这是PHP,它编码像这样
pubcredentials.php?ID = GxvS117MfVw =
请提供您需要的信息,我会尽可能多地尝试获取
修改1:
我得到另一个“L0sgBFUTpsE =”变成“53096”
“不包括
我被问到为什么“L0sgBFUTpsE =”变成“53096”只是为了让你知道我没有解码这个。当我能够在更改解码方法之前对其进行解码时,此信息可供我使用。所以这些都是正确的!
答案 0 :(得分: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
这是我的程序给出的前三个字节。
如果我不得不猜测,你有一个8字节的“整数”编码在Base-64而不是decimal。而且它不是直接映射到56699;它是某种与ID 56699相关联的会话标识符。
答案 1 :(得分:1)
即使字符串看起来如果有base64
-encoded - 基于上面示例中给出的字符集和字符串末尾的独特=
字符 - 转换{ {1}}可能包含几个步骤,包括压缩和/或加密算法,其中56699 --> GxvS117MfVw=
- 编码作为最后一步。
正如VeeBee所说:如果没有任何进一步的信息,就无法确定返回base64
所需的步骤。