我正在使用您的带有 Base32 编码的网址在短信中发送缩短的链接。URL 前面有一条消息,由于短信限制为 160 个字符,而我的消息大约是 140 个字符,因此我需要非常小心字符数。
我的问题是这个;如何使用 base32 编码计算可以容纳 4 个字符限制的 URL?
我正在使用您的带有 Base32 编码的网址在短信中发送缩短的链接。URL 前面有一条消息,由于短信限制为 160 个字符,而我的消息大约是 140 个字符,因此我需要非常小心字符数。
我的问题是这个;如何使用 base32 编码计算可以容纳 4 个字符限制的 URL?
我不确定您是否在询问permutations。
base32 编码中的每个字符可以有 32 个值([A - Z] 和 [2 - 7])。如果您使用的形式http://yoursite.com/xxxx
是xxxx
短 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)