我想为特定用例和我所针对的最终用户类型设计URL缩短器.我已经决定要根据自动递增的整数键在内部存储URL.然而,还需要将密钥表示给URL中的用户作为六位数的基数26(az*6)并且不可能基于递增的整数密钥来预测基本26 url密钥是什么.换句话说,第一个url键不应该是aaaaaa然后在下次有人创建url时它不应该是aaaaab等,并且没有循环生成随机的并且捕获到数据库中以查看它是否已经重复存在.
要求的第二部分(外部人员难以预测的基础26中的网址)是更有趣的部分.理想情况下,我希望将26 ^ 6范围内的所有数字的某种算法1-1映射到相同范围内的另一个数字,然后我可以在基数26中打印,并且我可以在算法上撤消而不是当我想查找网址时,需要存储在单独的表中.我怎么能做到这一点?
我一直想知道小网址是如何工作的.
我想为我的网站开发类似的东西,但是作为大多数人,我使用GUID进行ID.创建对象时,我是否应该生成一个10个字符的随机字符串作为公共ID,还是有更聪明的方法?
旧网址示例:www.mysite.com/default.aspx?userId = {id}
新网址示例:www.mysite.com/pwzd4r9niy