Base64是很多人熟知的一种编码。
在URL传输领域,还有类似的Base32编码。这个编码去掉了一些特殊字符,只留下了大写字母和数字。
本文要讨论的是, 故其 基 是58个字母和数字组成,如下:
ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
注意,少了数字0,大写字母I,大写字母O,小写字母l,一共是:
10+26×2-4=58
。
这个编码到底比前面两种好在那里呢?
首先,是好阅读,没有容易混淆的字母和数字。
第二,这个编码是一个混淆编码,看上去像Base64,但是其实不是。编码效率又高于Base32。
因此很适合用于抗自动监视的传输系统的底层编码机制。虽然基于概率模型的系统很容易识别出Base58,但是考虑到,基于概率模型的系统的巨大的计算和存储开销。监视TCP报文中Base58编码的数据流在目前是很难实现的。