Base16 Base32 Base58 Base62 Base64 Base85 Base91 编码/解码 0 编码类型: Base16 Base32 Base58 Base62 Base64 Base85 Base91 字符编码: UTF-8 UTF-16LE UTF-16BE GBK(简繁体) GB18030(中日韩) Big5(台湾繁体中文) Hex(16 进制) ASMO-708 CP1025 CP866 CP875 DOS-720 DOS-862 EUC-JP IBM-THAI IBM037 IBM273 IBM277 IBM278 IBM280 IBM284 IBM285 IBM290 IBM297 IBM420 IBM423 IBM424 IBM437 IBM500 IBM737 IBM775 IBM850 IBM852 IBM855 IBM857 IBM860 IBM861 IBM863 IBM864 IBM865 IBM869 IBM870 IBM871 IBM880 IBM905 IBM1026 IBM00858 IBM00924 IBM01047 IBM01140 IBM01141 IBM01142 IBM01143 IBM01144 IBM01145 IBM01146 IBM01147 IBM01148 IBM01149 ISO-8859-1 ISO-8859-2 ISO-8859-3 ISO-8859-4 ISO-8859-5 ISO-8859-6 ISO-8859-7 ISO-8859-8 ISO-8859-9 ISO-8859-13 ISO-8859-15 JOHAB KOI8-R KOI8-U KS_C_5601-1987 MACINTOSH SHIFT_JIS US-ASCII UTF-32LE UTF-32BE WINDOWS-1250 WINDOWS-1251 WINDOWS-1252 WINDOWS-1253 WINDOWS-1254 WINDOWS-1255 WINDOWS-1256 WINDOWS-1257 WINDOWS-1258 WINDOWS-874 X-CHINESE-CNS X-CHINESE-ETEN X-CP20001 X-CP20003 X-CP20004 X-CP20005 X-CP20261 X-CP20269 X-CP20936 X-CP20949 X-EBCDIC-KOREANEXTENDED X-EUROPA X-IA5 X-IA5-GERMAN X-IA5-NORWEGIAN X-IA5-SWEDISH X-MAC-ARABIC X-MAC-CE X-MAC-CHINESETRAD X-MAC-CROATIAN X-MAC-CYRILLIC X-MAC-GREEK X-MAC-HEBREW X-MAC-ICELANDIC X-MAC-JAPANESE X-MAC-ROMANIAN X-MAC-THAI X-MAC-TURKISH X-MAC-UKRAINIAN 编码 解码 ↕ 交换 清空 编码表 重置 0 说明 此工具实现 Base16、Base32、Base58、Base62、Base85、Base91 进制的编码与解码,并支持自定义编码表。 Base16 编码表:0123456789ABCDEF Base32 编码表:ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 Expand All Base32 使用了 ASCII 编码中可打印的 32 个字符(大写字母A~Z和数字2~7)对任意字节数据进行编码。 Base32 将串起来的二进制数据按照 5 个二进制位分为一组,由于传输数据的单位是字节(即 8 个二进制位),所以分割之前的二进制位数是 40 的倍数(40 是 5 和 8 的最小公倍数)。 如果不足 40 位,则在编码后数据补充"=",一个"="相当于一个组(5 个二进制位),编码后的数据长度是原先的 8/5 倍。 Base32 编码过程,首先将数据转换成二进制串,按照五位一组进行分割。 如果数据的位数不是 5 的整数倍,需要在末尾填充 0 直到能够整除 5,其次将每组五位二进制数转换为对应的十进制数,然后查表得到对应的字符。 Base32 编码示例,比如字符串 ABC,对应的二进制序列为 01000001 01000010 01000011, 按 5 位分组得到 01000 00101 00001 00100 0011,最后 1 组 0011 不足 5 位,补 0,变成 01000 00101 00001 00100 00110, 转成十进制数 8、5、1、4、6,查表得到 IFBEG。 Base58 编码表:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz Expand All Base58 编码去掉了一些容易混淆的数字和字母:0(数字0)、O(o的大写字母)、l( L的小写字母)、I(i的大写字母)。 Base64 采用直接切割 bit 的方法(8 ➝ 6),由于 256 不能被 58 整除,Base58 采用大数进制转换,效率更低,使用场景更少。 一个 ASCII 字节可用 8 位二进制表示可写成 log₂256=8,Base58 最多可用 log₂58≈5.858 位表示,因此经过 Base58 编码后的长度是原始数据长度的 8/5.858≈1.37 倍。 Base58 编码将二进制数据看作一个大整数,然后将这个大整数不断除以 58,并记录余数,这些余数对应于 Base58 字符集中的字符。 Base58 编码示例,比如字符串 ABC,对应的二进制序列为 01000001 01000010 01000011,转成整数为 4276803,然后循环对 58 求余数, (4276803/58=73737,4276803%58=57), (73737/58=1271,73737%58=19), (1271/58=21,1271%58=53), (21/58=0,21%58=21),反转余数顺序,得到 21、53、19、57,查表得到 NvLz。 Base62 编码表:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz Base64 编码表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ Expand All 第 65 个字符是填充字符,如果没有,默认就是 “=”。 Base85 编码表:!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu Base91 编码表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,./:;<=>?@[]^_`{|}~"