【问题标题】:Technique for creating unique custom CMS page ID's创建唯一自定义 CMS 页面 ID 的技术
【发布时间】:2014-02-09 07:59:31
【问题描述】:

我有一个网站,用户可以在其中上传博客文章。该网站完全由我构建,无需查看框架文档。

我一直使用 Mysql 的主键作为 url 中的页面 ID,但我不喜欢这样,因为它向用户泄露了太多信息。 id 看起来有点像这样

www.website.com/view?post=97

Youtube 使用 11 个字母组合,看起来有点像

watch?v=wEoFhRCUEs8 // *Not a plug*

我正在考虑在 MD5 中加密 ID,但是 1) 这太长了,2) 不是 MD5 的预期用途。

关于 facebook、stackoverflow、youtube 等网站如何加密每个 ID 同时确保其唯一性的任何想法?

我也不确定是否最好在 mysql 中保存第二个唯一 ID,或者只是通过一个每次需要时转换它的函数来解析它。

谢谢

【问题讨论】:

标签: php mysql sql database content-management-system


【解决方案1】:

我可以为你提供逻辑:

首先有一个帖子 // 然后尝试将其插入数据库// 在插入数据库之前 // 生成随机字符串 // 生成随机字符串后,请检查数据库是否已使用 // 如果被占用,则生成一个新字符串 // 否则使用该字符串 // 现在将所有必要的数据插入数据库// 完成 //

【讨论】:

    【解决方案2】:

    您实际上在 MD5 的正确轨道上。基本上,您需要做的是根据帖子 ID 创建一个简单的加密。只要它与安全无关,我会编写一个快速的 2 路哈希算法,允许您将 97 转换为“wEoFhRCUEs8”,反之亦然。这样您以后可以查找帖子。

    可能只是将数字移位并将其异或成“秘密”字符串......等等......

    如果您想更安全一点,请尝试使用 mcrypt 库,根据算法,您可以限制输出大小。

    如果您不进行可逆加密,那么您别无选择,只能将您的唯一字符串与您的帖子一起存储,以便以后查找。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 2014-05-28
      • 2019-04-28
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多