-5

これが私が知っていることです...

この "GxvS117MfVw=" をデコードすると "56699" に変わります

この "+sB6hF46GyU=" は "?????" に変わります。

" 含まれていない

base64 デコーダーを試しましたが、正しくないようです。数値になるはずです。長さについてはよくわかりませんが、5 桁を超えるべきではないと思います。解読してその方法を教えていただければ幸いです。ありがとうございました!!

編集:

これは私の最初の投稿であるため、これが不十分なデータである可能性があることを理解しています. まあ、それはphpで、このようにエンコードされていると思います

pubcredentials.php?id=GxvS117MfVw=

必要な情報を提供してください。それを得るためにできる限りの努力をいたします

編集1:

「L0sgBFUTpsE=」が「53096」に変わります

" 含まれていない

なぜ "L0sgBFUTpsE=" が "53096" になるのかと聞かれることがあります。この情報は、彼らがデコード方法を変更する前にデコードできたときに入手できました。だから、それらはTRUEです!

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

16 進数として解釈:

0x1B  0x1B  0xD2

これは、私のプログラムが最初の 3 バイトとして与えたものです。

推測してみると、10 進数ではなく Base-64 でエンコードされた 8 バイトの「整数」が得られます。また、56699 への直接のマッピングではありません。ID 56699 に関連付けられているのは、ある種のセッション ID です。

于 2010-06-02T07:35:02.473 に答える
1

上記の例で指定された文字レパートリーと文字列の末尾にある特徴的な文字に基づいて、base64エンコードされた文字列が存在する場合でも、文字列は圧縮および/または暗号化アルゴリズムを含むいくつかのステップで構成される場合があります。最後のステップとして -encoding を使用します。=56699 --> GxvS117MfVw=base64

したがって、VeeBeeが言ったように、それ以上の情報がなければ、帰りに必要な手順を特定することは不可能ですGxvS117MfVw= --> 56699

于 2010-06-02T07:35:49.540 に答える