base家族:base64、base32和base16

在base64的编码中http://xiaoqin00.blog.51cto.com/10468367/1713961,我们说到base64编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符,也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3。

同样,base32就是用32(2的5次方)个特定ASCII码来表示256个ASCII码。所以,5个ASCII字符经过base32编码后会变为8个字符(公约数为40),长度增加3/5.不足8n用“=”补足。

base16就是用16(2的4次方)个特定ASCII码表示256个ASCII字符。1个ASCII字符经过base16编码后会变为2个字符,长度增加一倍。不足2n用“=”补足

在base家族中,有先写的是base64,没有189的是base32,

base64中包含大写字母(A-Z)、小写字母(a-z)、数字0——9以及+/;

base64索引表:

base32中只有大写字母(A-Z)和数字234567

base32索引表:

base16中只有数字0-9以及大写字母ABCDEF。

base16索引表:

仅是本人的理解,如有错误,欢迎指正。

时间: 2024-10-25 13:32:50

base家族:base64、base32和base16的相关文章

Python 标准库一览(Python进阶学习)

转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连应该用哪个类库都不知道,还要去百度(我不信就我一个人那么尴尬TvT) 好像自从学习了基础的Python 语法,看了几本Python经典的书,知道了一些常见的类库.在几本语法应用熟练的情况下,如果不做题,像是无法显著的提高自己的知识储备了(所以叫你去做python challenge啊,什么都不会~~

Python中级 —— 07标准库

标准库学习 1. The Python Standard Library[https://docs.python.org/3.5/library/] ( 3.5.5 Documentation ) 1.介绍 2.内置函数 3.内置常量 3.1常数添加的 site模块 4.内置类型 4.1. 真值测试 4.2.布尔运算--and,or,not 4.3.比较 4.4.数值类型--int,float,complex 4.5.迭代器 4.6.序列--list,tuple,range 4.7.文本序列类型

python 模块介绍 - Base16, Base32, Base64 数据编码

简介 功能:RFC 3548: Base16, Base32, Base64 数据编码.转换二进制数据为适合明文协议传输的 ASCII 序列.转换8bits 为每个字节包含 6,5 或 4bits 的有效数据,比如 SMTP, URL 的一部分或者 HTTP POST 的一部分.参考:RFC 3548.编码算法不同于 uuencode.类型:标准库相关模块:uu, binhex, uu, quopri Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法.由于 2 的 6 次方

密码学基础之base编码家族介绍

base64.顾名思义,就是基于64个可打印字符来表示二进制数据的一种方法.(它不是加密算法).对于64个打印字符,我们字需要6个二进制位就可以完全表示了.那么我们如何利用8个二进制位来表示只需要6个二进制位就可以完全表示的可打印字符呢?由于2的6次方等于64,所以我们可以将每6个位元为一个单元,对应某个可打印字符.三个字节有24个位元,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示(一般的ASCII码中一个字符有8位,但在这64个字符中只需要6位就可以表示出来了).它可用来作

base全家桶的安装使用方法

base编码是Binary-to-text encoding的一种实现方法,它可以把二进制数据(含不可打印的字符)编码成可打印字符序列. 本文会不定时收录“base全家桶”:base64.base32.base16.base58.base91.base92等. ------------------ 0x01 base64 安装:python2.7自带 alphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+

Java 加密框架 02 Base64

一段文字在经过 Base64 编码后面目全非,而经过Base64解码后又能恢复.这很有加密解密的意味.不过Base64 算法并不是加密算法,Base64 算法的转换方式很像古典加密算法中的单表置换算法. Base64 算法最早用于解决邮件传输问题.在早期电子邮件只允许ASCII码字符.非ASCII码字符在传输时会有问题,所以出现了 Base64编码. Base64 是一种基于64个字符的编码算法.经过Base64 编码后的数据会比原始数据略长,为原来的4/3倍.Base64 编码后的字符串的字符

Python中的base64模块

本文介绍Python 2.7中的base64模块,该模块提供了基于rfc3548的Base16, 32, 64编解码的接口.官方文档,参考这里. 该模块提供两套接口,传统接口基于rfc1521的Base64,当前接口基于rfc3548的Base16/32/64编码规范,本文只介绍当前的接口. 当前接口在Python 2.4中就被引进,关于Base64编码格式提供了以下六种接口,便于高效灵活地实现需要的编解码工作. 1. b64encode(s, altchars=None) 2. b64deco

iOS开发之MD5与Base64

1.MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现.将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2.MD3和MD4. MD5算法具有以下特点: 1.压缩性:任意长度的数据,算出的MD5值长度都是固定的. 2.容易计算:从原数据计算出MD5值很容易. 3.抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所

加密解密 之base系列编码

Base16 Base16编码使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码.Base16先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来,再按照4比特一组进行切分,将每组二进制数分别转换成十进制,在下述表格中找到对应的编码串接起来就是Base16编码.可以看到8比特数据按照4比特切分刚好是两组,所以Base16不可能用到填充符号“=”.Base16编码后的数据量是原数据的两倍:1000比特数据需要250个字符(即 250*8=2000