0

我正在使用您的带有 Base32 编码的网址在短信中发送缩短的链接。URL 前面有一条消息,由于短信限制为 160 个字符,而我的消息大约是 140 个字符,因此我需要非常小心字符数。

我的问题是这个;如何使用 base32 编码计算可以容纳 4 个字符限制的 URL?

4

1 回答 1

0

我不确定您是否在询问permutations

base32 编码中的每个字符可以有 32 个值([A - Z] 和 [2 - 7])。如果您使用的形式http://yoursite.com/xxxxxxxx短 URL,四位数字可以包含 32 4排列。即1,048,576

如果您还包括三位数的 URL(例如http://yoursite.com/xxx),则可以有 32 3个排列。即32,768。再加上四位数的 URL,您总共得到1,081,344

如果您还使用 2 位 URL(例如http://yoursite.com/xx),您将获得额外的 1,024 个 URL,总计1,082,368 个。并且包括个位数(例如http://yoursite.com/x)会给您额外的 32。总计1,082,400


但是您不需要只使用 [A - Z] 和 [2 - 7]。根据RFC3986,您可以使用字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=。那是84个不同的字符。有了这个:

http://yoursite.com/xxxx               49,787,136
http://yoursite.com/xxx added          50,379,840 (+592,704)
http://yoursite.com/xx added           50,386,896 (+  7,056)
http://yoursite.com/x added            50,386,980 (+     84)

即使你省略了 characters -._~:/?#[]@!$&'()*+,;=,因为它们确实不适合缩短的 URL,你仍然会得到 62 个字符。接着就,随即:

http://yoursite.com/xxxx               14,776,336
http://yoursite.com/xxx added          15,014,664 (+238,328)
http://yoursite.com/xx added           15,018,508 (+  3,844)
http://yoursite.com/x added            15,018,570 (+     62)
于 2014-10-03T07:03:19.263 回答