我知道标题本身很模糊,所以让我将其分解成我想做的事情。
有一个游戏(具体来说是微信小程序上的游戏),在进入游戏的那个部分时,它会向服务器请求精灵和文件,这样做之后,文件将被请求和加载,以便您体验游戏(废话)。
现在我一直在使用 Fiddler 来追踪从服务器请求的那些精灵(换句话说,数据挖掘),但是就像我说的那样,我必须进入游戏的那个部分才能让 Fiddler 显示位于服务器中的文件的请求和 URL(例如,https://this.example.com/z38/native/FILENAME.png),我担心的是获取游戏尚未从服务器请求的精灵。
经过仔细检查,我意识到文件的名称是 UUID,格式为 8-4-4-4-12,然后在它后面是一个 5 个字符的字符串,用点分隔,最后是扩展名。例如:a0216a6d-b337-426d-aecd-ee8a81801087.f8dfb.jpg(注意:这是一个合法的示例,这样的文件确实存在于服务器中)
而我几乎不知道该如何处理该 UUID。我的问题最终指向了,这个 UUID 是否可能保存某种类型的信息?文件名末尾的 5 个字符串可以在游戏的其他文件中找到,所以这不是问题。当我有它时,我需要以某种方式找到与该 5 个字符串相对应的 UUID。总结一下,我有两个问题:
- 我可以将 UUID 转换为某种类型的文本、字符串、整数、单位或任何可以作为某种信息的东西吗?
- 子问题,据我所知,格式“8-4-4-4-12”由 5 个部分组成,这 5 个字符串是否与其中任何一个有关?每个字符分别代表 UUID 的一部分?
谢谢您的回答,如果我在错误的地方提问或者我的帖子有些部分含糊不清而浪费了您的时间,请原谅。
简短的回答是:不,而且不太可能。
更详细地说:当程序员需要保证特定名称永远不会与其他名称冲突时,就会使用 UUID。几乎每个程序员都会采取简单的方法,使用主机提供的“GetUUID”函数随机生成该 UUID。虽然可以从 UUID 回溯以找到用于生成它的一些信息,但在几乎所有情况下,这些信息与使用 UUID 的程序无关。例如,您可以解码 Windows 生成的 UUID 以获取时间戳和系统的默认网卡 MAC 地址,这与它嵌入的 Word 文档几乎没有关系。
说实话,如果我在编写此应用,我更可能使用 UUID 来定义玩家会话,并且只使用文件名的五个字符部分来标识资产。因此,在您的示例中,
a0216a6d-b337-426d-aecd-ee8a81801087.f8dfb.jpg
服务器上实际存在的文件将是f8dfb.jpg
,UUID 仅用于跟踪是您的当前游戏会话请求了此文件,并且服务器不会将其用作要发送给您的资产的文件名的一部分。我实际上会对其进行编码,以便如果资产不适合您游戏会话、如果 UUID 与当前游戏会话不对应或者如果它根本没有 UUID,服务器将拒绝转发该资产;这将是一个基本的反盗版保护方案。