我应该在图像网址中使用什么作为“魔法”或“秘密”?

时间:2011-02-04 19:29:59

标签: image facebook filenames flickr

世界上任何知道完整资产网址的人都可以查看Facebook照片。每个URL都包含配置文件ID,照片资产ID,请求的大小和魔术哈希,以防止暴力访问尝试。类似的东西:

/{profile-id}_{photo-id}_{magic}_{size}.jpg

例如:

http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs443.snc4/50270_68310606562_2720435_n.jpg

Flickr与其网址类似。一旦您知道了许多API方法返回的ID,服务器ID,服务器场ID和密码,就可以构建照片的源URL。

网址采用以下格式:

http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg

Facebook和Flickr使用什么作为他们的“神奇”或“秘密”价值?随机生成的数字?图像的哈希?配置文件的散列图像?序号?我该怎么用?

1 个答案:

答案 0 :(得分:0)

  • 哈希不应该是完全随机的数字,或者您需要保留一个关联表,将每个资产链接到这样的数字。
  • 哈希不应该依赖于照片的实际位,否则你需要获取照片来重新计算哈希值,这可能只是几个megs。
  • 哈希值应取决于生成任何页面时随时可用的信息:用户ID,资产ID,可能是服务器场ID。它应该很容易计算。但猜测它应该是微不足道的。它几乎是加密哈希的定义。

所以我将可用的ID组合成一个足够长的位字符串并将其提供给MD5或SHA1,并使用中间足够的数字作为秘密哈希。或者,我将ID组合起来创建例如64位值,使用shift,addition和xor,然后使用该值作为具有已知参数的linear congruential random number generator的种子,以在多次迭代中生成散列。