0

我正在开发一个 URL 缩短器 vyo.la,但我不确定如何完全按照我的意愿去做。我注意到像bit.ly这样的网站不使用整数,而是使用哈希、十六进制或类似的东西。我的应用程序,目前仅使用整数。我尝试过 base64,但我注意到它只对字符串进行编码,并且将整数转换为字符串提供了比整数本身更长的键。

无论如何要使用所有带有数字的大写和小写字母进行转换,以便我可以最大化可用的短 URL 的数量?

我希望将整数轻松转换为值并将值转换回整数。我不想为其分配一个随机的friendly_id 以避免冲突。

4

1 回答 1

1

如果我没记错的话,很多 URL 缩短器使用基数 36 (az, 0-9) 或 58 (az, AZ, 0-9),这应该可以满足您的需求。这是一个 base 58 ruby​​ 库。从自述文件中的示例中,它应该是您正在寻找的内容:

# Int to Base58
Base58.encode(12345) # => 4ER

# Base58 to Int
Base58.decode('A2Ph') # => 6639914
于 2012-08-09T20:40:24.097 回答