我找到了一个字符串,可能是在base64中进行了哈希处理。解码它会在我尝试过的每个编码中返回错误字符。我也无法访问生成它的代码,也无法对其进行反向工程。
这是base64:
AAECAR8GxwPJBLsFmQfZB/gIDI0B2AGoArUDhwSSBe0G6wfbCe0JgQr+DAA=
现在,它的长度为60个字节,并且所有字符对base64都有效,如果你有比base64更好的猜测通知我的话!
我也将它转换为字节数组,但我真的不知道如何将字节数组转换为具有不同编码的字符串。也许我可以为每个循环运行一个以不同编码打印结果字符串的循环,直到找到一个实际文本?
答案 0 :(得分:5)
这是来自Hearthstone的新甲板编码。它确实是有效的base64,它永远不会转换为纯文本。
$ echo 'AAECAR8GxwPJBLsFmQfZB/gIDI0B2AGoArUDhwSSBe0G6wfbCe0JgQr+DAA=' | base64 -D | od -t u1
0000000 0 1 2 1 31 6 199 3 201 4 187 5 153 7 217 7
0000020 248 8 12 141 1 216 1 168 2 181 3 135 4 146 5 237
0000040 6 235 7 219 9 237 9 129 10 254 12 0
0000054
这可能是一种特定于Hearthstone的自定义结构序列化格式,其中一个字段表示该类,其余的是卡ID号(我认为尚未公开)到卡的数量的映射。如果重新排列格式,您可以清楚地看到一些模式:
0 1
2 1
31 6
199 3
201 4
187 5
153 7
217 7
248 8
12
141 1
216 1
168 2
181 3
135 4
146 5
237 6
235 7
219 9
237 9
129 10
254 12
0
在发布新更新之前,我们无法了解更多信息。当更新结束时,很容易进行实验,只导出一张卡片并比较结果。
答案 1 :(得分:4)
为了建立Tenchi2xh的答案,我们可以使用the decklist that comes with the string来帮助弄清楚数字的含义。
0 1 2 1 31
- 某种标题,可能表示类,格式和年份6
- 牌组中出现1张的牌数967 1225 1467 1945 2009 2296
- 每个都是一张在牌组中出现1x的卡12
- 每张牌在牌组中出现2张的牌数397 472 680 949 1159 1426 1773 2027 2523 2541 2689 3326
- 每张都是2x 0
- 最后填充最后要弄清楚的是那些16位数字指的是哪些卡。幸运的是,它不是太复杂,它们只是卡片的略微修改版本' " DBF ID"。我在HearthstoneJSON查看了这些内容。从数字x
获取DBF ID的方法是:
dbfId = (x >> 8) << 7 | (x % 128)
(换句话说,保持最低的7位相同,并将其余的右移1)
例如:967
解码为DBF ID 455
,即Snake Trap。 3326
对应于DBF ID 1662
,即Eaglehorn Bow。