生成唯一base62哈希的最快代码

时间:2009-09-26 10:53:24

标签: c# hash bit.ly tinyurl

嘿伙计们,我想生成独特的base62哈希 - 类似于tinyurl和bit.ly使用c#做的事情。这将基于bigint类型的自动增量字段ID(与大多数这些网站一样)

min chars将为1,max chars为6 ...如果您必须在c#中为此哈希编写最快的代码(最少的cpu使用量),您将如何编写它?

2 个答案:

答案 0 :(得分:3)

请参阅我对另一个类似的Stack Overflow问题的回答,这里:

Need a smaller alternative to GUID for DB ID but still unique and random for URL

我发布了一个名为“ShortCodes”的C#类,它正是您正在寻找的,即生成一个独特的baseX(其中X是您喜欢的任何东西!)基于整数/长数的哈希,还可以转换再回来。

为了我自己的目的,我实际上是为了模仿TinyUrl.com和Bit.ly等网站的短代码/哈希生成而编写这个小类。

我不能说这是否是实现这一目标的绝对最快方式,但它也不是很慢! :)

答案 1 :(得分:0)

Eric Lippert在之前的类似问题中建议lookup tables。他的答案也非常适合你的目的。