用于创建唯一自定义CMS页面ID的技术

时间:2014-02-09 07:59:32

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

我有一个用户可以上传博客帖子的网站。这个网站完全由我构建,没有框架文档可供查看。

我一直在使用Mysql的主键作为网址中的网页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,或者只是通过每次需要时转换它的函数来解析它。

由于

2 个答案:

答案 0 :(得分:0)

我可以为您提供逻辑:

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

答案 1 :(得分:0)

你实际上是在MD5的正确轨道上。基本上你需要做的是根据post id创建一个简单的加密。只要它不与安全相关,我就编写一个快速的双向散列算法,允许你将97转换为" wEoFhRCUEs8"反之亦然。这样你以后可以查看帖子。

可能只是一点点改变了数字并将其转化为一个秘密" string .. etc ...

如果你想更安全一点,试试mcrypt lib,根据算法你可以限制输出大小。

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