我知道我可以使用GUID生成一个唯一的字符串,但它太长了。 现在我只需要在网站中生成不重复的字符串,我该怎么办?谢谢!
例如:在网站http://mathurl.com/中,您可以生成永久性网址,例如http://mathurl.com/75ujy7b,而且75ujy7b非常短且无重复。
答案 0 :(得分:2)
首先,您可以从一个计数器开始,确保使用返回唯一增量数字的互斥锁/锁定,并将最后一个数字保存在您网站的某个位置,可能是在web.config中,可能在数据库中,或者在文件。
然后将此唯一编号转换为不同的基数,例如转换为base-64。以下是一些代码,以及有关如何执行此操作的模式详细信息
https://stackoverflow.com/a/5901201/159270
你可以得到像
这样的结果value: 0 encoded: A
value: 1 encoded: B
value: 9999999999 encoded: SrYsNt
value: 4294965286 encoded: ZNGEvT
value: 2292964213 encoded: rHd24J
value: 1000000000 encoded: TrNVzD
现在,如果你在角色上加扰地图,你也可以找到一个不太容易找到的数字。
答案 1 :(得分:0)
你可以使用足够长度的随机数..介意10,000和99,999 ..
如果这对你来说不够好,你可以研究一些哈希算法......我想..