嘿,伙计们,我想生成独特的base62散列--类似于tinyurl和bit.ly使用c#做的事情。这将基于类型为bigint的自动增量字段ID (就像大多数这样的站点)
最小字符数为1,最大字符数为6...如果你必须为这个散列用c#写最快的代码(最少的cpu使用量),你会怎么写呢?
发布于 2009-09-26 11:10:09
请看我对另一个类似的堆栈溢出问题的回答,这里:
Need a smaller alternative to GUID for DB ID but still unique and random for URL
我发布了一个名为"ShortCodes“的C#类,它可以做你想做的事情,比如生成一个唯一的baseX (其中X是你喜欢的任何东西!)基于整数/长整型数字的散列,也可以再次转换回来。
实际上,我编写这个小类正是为了模仿像TinyUrl.com和Bit.ly这样的网站的短代码/散列生成,以达到我自己的目的。
我不能说这是不是实现这一目标的绝对最快的方法,但它也不是很慢!:)
发布于 2009-09-26 10:59:31
Eric Lippert在之前的一个类似问题中建议使用lookup tables。他的回答对你来说也是完美的。
https://stackoverflow.com/questions/1480978
复制相似问题