我使用帶有Base32編碼的yoururls在短信內發送縮短的鏈接。 URL前面有一條消息,由於短信限制爲160個字符,我的消息大約爲140個字符,因此我需要非常小心字符數。此配置有多少個URL?
我的問題是這樣的;如何計算使用base32編碼可以適應4個字符限制的URL數量?
我使用帶有Base32編碼的yoururls在短信內發送縮短的鏈接。 URL前面有一條消息,由於短信限制爲160個字符,我的消息大約爲140個字符,因此我需要非常小心字符數。此配置有多少個URL?
我的問題是這樣的;如何計算使用base32編碼可以適應4個字符限制的URL數量?
我不確定您是否在詢問permutations。
base32編碼中的每個字符可以有32個值([A - Z]和[2 - 7])。如果您使用表格http://yoursite.com/xxxx
,其中xxxx
是短網址,則四位數可以包含32個排列組合。即,1,048,576。
如果您還包含三位數字的網址(例如http://yoursite.com/xxx
),則可以有32 排列。那就是,32,768。加上四位數的URL,那麼總共可以得到1,081,344。
如果您還使用2位數字的網址(例如http://yoursite.com/xx
),則會獲得額外的1024個網址,合計爲1,082,368。並且包括單個數字(例如http://yoursite.com/x
)將會給你增加32個。總計1,082,400。
但是,您不需要僅使用[A - Z]和[2 - 7]。根據RFC3986,您可以使用字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~:/?#[]@!$&'()*+,;=
。這是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)
即使你離開了字符-._~:/?#[]@!$&'()*+,;=
,因爲他們真的沒有一個縮短的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)
謝謝您的全面解答。除了你說的關於A-Z是基地32的一部分的部分外,這是很好的。我認爲你的意思是a-z。無論如何,當你幫助我理解它時,我會獎賞你的賞金。 – 2014-10-03 10:43:17
謝謝@Michael。我決定使用大寫字母,因爲[RFC4648:Base16,Base32和Base64數據編碼](http://tools.ietf.org/html/rfc4648)使用大寫字母。請參閱RFC的表3。 – Krumia 2014-10-03 10:48:28
好了解,謝謝 – 2014-10-03 14:50:19