如何生成匹配数据库记录的独特URL变量?(How to generate unique URL va

2019-09-17 07:48发布

我希望能够产生这样的URL变量:

http://example.com/195yq
http://example.com/195yp
http://example.com/195yg
http://example.com/195yf

变量将匹配一个MySQL记录集,这样我可以拉出来。 在创造,记录集的时候,我想创建此密钥。

我怎样才能做到这一点? 做这个的最好方式是什么? 是否有任何现有的课程,我可以利用?

感谢所有

Answer 1:

基本上,你需要某种形式的散列函数。

这可以是SHA-1函数中,函数MD5(如altCogito),或使用其他的数据必须在记录和编码它。

多少记录,你认为你会? 要小心在选择解决方案作为哈希函数必须足够大,以覆盖你很好,但是太大了,你创造出比你需要更大的数据库。 我用SHA-1和截断到64或32位,这取决于需要。

另外,看看REST。 考虑到该URL可以不必这么神秘?



Answer 2:

这可以通过两种方式来完成非常简单:

  • 使用哈希,如MD5 。 (将是长期的)
  • 基64编码的特定ID或数据片段

如果你询问是否有任何事情已经这样做与MySQL的记录,我不相信你会找到的东西作为设计的角度来看,数据是真的,真的概念远离你的网站的网址,即使是在像Grails的框架。 大多数甚至不试图前端和数据访问功能包装成单件。



Answer 3:

在什么情况下你会在使用这个? 为什么不只是通过后的变量? 这是更为安全和整洁。 你仍然完成的URL数量如ID = 195yq,并且有一种方法通过配置php.ini文件隐藏起来。

我希望这可以帮助你。

请记住这一点。 当你在地址栏传递变量很容易让一个人改变变量和访问信息,你可能不希望他们访问。



Answer 4:

在你给的例子,它看起来像你的基础-64编码的数字主键。 这是我会怎么做,并已在过去做到了,但我不知道它的任何较明显的传递ID,因为基地-64解码是微不足道的更好。



文章来源: How to generate unique URL variables that match to a db record?