【发布时间】:2010-12-01 15:29:56
【问题描述】:
嘿,伙计们,我想生成唯一的 base62 哈希 - 类似于 tinyurl 和 bit.ly 使用 c# 所做的事情。这将基于 bigint 类型的自动递增字段 ID(与大多数此类网站一样)
min chars 为 1,max chars 为 6...如果你必须在 c# 中为这个 hash 编写最快的代码(最少的 cpu 使用量)你会怎么写?
【问题讨论】:
嘿,伙计们,我想生成唯一的 base62 哈希 - 类似于 tinyurl 和 bit.ly 使用 c# 所做的事情。这将基于 bigint 类型的自动递增字段 ID(与大多数此类网站一样)
min chars 为 1,max chars 为 6...如果你必须在 c# 中为这个 hash 编写最快的代码(最少的 cpu 使用量)你会怎么写?
【问题讨论】:
Eric Lippert 在之前的类似问题中建议 lookup tables。他的回答也非常适合您的目的。
【讨论】:
请在此处查看我对另一个 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 等网站的短代码/哈希生成。
我不能说这是否是实现这一目标的绝对最快方式,但也不是很慢! :)
【讨论】: