2017-09-24 63 views

回答

0

这被称为散列ID,一个唯一的标识符通常是从一个唯一的属性,如数据库中的一个实体的主键生成的。哈希ID通常比通过加密哈希算法(如MD5或SHA-256)创建的典型哈希短,并且与这些不同,哈希ID通常是可逆,这意味着我们可以解码原始值。它们可以减少应用程序内部实现的风险,从而提高安全性。

结账hashids.org。本网站提供各种编程语言的实现。

除非您有充分的理由不这样做,否则请避免在客户端生成散列ID。通过在服务器上创建哈希ID,您可以保证这些ID是唯一的,并且与您的应用程序存储数据所通过的任何机制使用的标识符一致。

编辑发表评论 - 这里就是你可能会跟随在URL中使用散列ID的过程:

让我们假设我们使用哈希ID来创建链接到用户配置文件。当我们生成一个包含个人资料链接的网页,我们的应用程序:

  1. 转换的用户ID(前5)到哈希ID(如3ac4jx60
  2. 显示的页面的链接像http://example.com/user/3ac4jx60

如果站点访问者点击链接时,应用程序将接收到该请求和:

  • 解码在URL中的散列ID来获取用户ID(3ac4jx605
  • 使用用户ID来获取相应的记录并显示用户的个人资料
  • +0

    谢谢。但是,页面的内容是如何被保存在具有唯一标识的网址中的?你可以用一个例子来展示这个实现。 – Gabriel

    +0

    该页面的内容未在URL中编码,只有标识要在页面上显示的数据的值。例如,当保存一个JSFiddle时,该站点用一个ID将代码保存在数据库中,然后将该ID编码为供公共使用的散列ID。当用户访问小提琴URL时,站点将散列ID解码回数据库ID。我更新了我的答案来说明这个过程。 –

    相关问题