Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 我应该在我的图像URL中使用什么作为“魔法”或“秘密”?_Image_Facebook_Filenames_Flickr - Fatal编程技术网

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

Image 我应该在我的图像URL中使用什么作为“魔法”或“秘密”?,image,facebook,filenames,flickr,Image,Facebook,Filenames,Flickr,世界上任何知道完整资产URL的人都可以查看Facebook照片。每个URL都包含一个配置文件ID、照片资产ID、请求的大小和一个防止暴力访问尝试的魔法哈希。比如: /{profile-id}_{photo-id}_{magic}_{size}.jpg 例如: Flickr对他们的URL做了类似的事情。一旦知道照片的ID、服务器ID、场ID和机密,就可以构建照片的源URL,这是许多API方法返回的 URL采用以下格式: http://farm{farm-id}.static.flickr.com

世界上任何知道完整资产URL的人都可以查看Facebook照片。每个URL都包含一个配置文件ID、照片资产ID、请求的大小和一个防止暴力访问尝试的魔法哈希。比如:

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

Flickr对他们的URL做了类似的事情。一旦知道照片的ID、服务器ID、场ID和机密,就可以构建照片的源URL,这是许多API方法返回的

URL采用以下格式:

http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg
Facebook和Flickr的神奇或秘密价值是什么?一个随机产生的数字?图像的散列?配置文件和图像的散列?序列号?我应该用什么

散列不应该是一个完全随机的数字,否则您将需要保持一个关联表,将每个资产链接到这样一个数字。 散列不应该依赖于照片的实际位,否则您需要获取照片以重新计算散列,这可能是几个兆。 散列应该取决于生成任何页面时随时可用的信息:用户ID、资产ID,可能是农场ID。它应该易于计算。但这不应该是微不足道的猜测。这几乎是加密散列的定义。
因此,我会将可用的ID组合成足够长的位字符串,并将其提供给MD5或SHA1,并使用中间足够的数字作为秘密哈希。或者,我会组合ID,使用移位、加法和异或创建一个例如64位的值,然后使用该值作为一个已知参数的种子,在几次迭代中生成散列。

他们可能使用随机值,以避免从服务器上撕取图像。