【问题标题】:Decoding/Encoding this "mystery" string [closed]解码/编码这个“神秘”字符串[关闭]
【发布时间】:2014-08-15 22:44:45
【问题描述】:

对于此请求的含糊性质,我提前道歉,我意识到这与特定的编码问题无关(尽管对转换进行编码是我的最终目标)。我有一个看起来像“Gr3tsgAAAAAAAAAA”的字符串值,我知道它可以以某种方式变成一个看起来像“3001924890”的长整数。我对第一种格式的所有值都以“AAAAAAAAAA”结尾,因此该部分似乎是一致的。

我坚持的部分是我不知道从哪里开始进行转换。有人认识这种编码的字符串格式吗?它是某种类型的十六进制吗?

【问题讨论】:

  • 尝试以 64 或 32 为基数,但请记住,任何形式或值都可以转换为整数。

标签: encryption character-encoding hex encode


【解决方案1】:

'AAA...' 表示 Base64 编码中的零字节。如果您的所有值都以“AAAAAAAAAA”结尾,那么它们很可能都是四字节值,尾随零。例如,'Gr3tsgAAAAAAAAAA' Base64 解码为字节数组 [26, 189, 237, 178, 0, 0, 0, 0, 0, 0, 0, 0]。将前四个字节组合成一个四字节整数,您必须在 Big-endian 或 Little-endian 之间进行选择,即您从哪个方向读取字节?可以是 (26 * 256 * 256 * 256) + (189 * 256 * 256) + (237 * 256) + 178,也可以是 26 + (189 * 256) + (237 * 256 * 256) + ( 178 * 256 * 256 * 256)。所以我猜这代表 448654770 或 3001924890。你可以试试看它是否给出了预期的结果。我希望它是 little-endian,在这个例子中,26 只是 26,并且数字会向右增加(给出 3001924890),如果需要的话,右边的额外位置可以增加更大的数字。

【讨论】:

  • 是的。这是完全正确的。是小恩丹。我在发布之前尝试的第一件事是尝试使用内置的 .FromBase64String 但它从未奏效。但是,通过您的回答,我能够自己手动创建该功能。非常感谢您对这样一个“糟糕”问题的知识渊博的回答。
猜你喜欢
  • 1970-01-01
  • 2012-09-28
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 2021-11-24
  • 2011-02-24
相关资源
最近更新 更多