BASE64

BASE64

什么是** base64?**

Base64 是一种基于64个可打印字符来表示二进制数据的表示方法。其产生目的是为了解决 单个byte无法满足单个字符表示的问题。(byte 可表示的范围(0-255),ASCII定义的范围(0-127)其中只有95个可打印字符

Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=‘,因此编码后输出的文本末尾可能会出现1或2个’='。

为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符

示例

在此例中,Base64算法将3个字节编码为4个字符。

_ 标准映射表 _X

数值字符数值字符数值字符数值字符
0A16Q32g48w
1B17R33h49x
2C18S34i50y
3D19T35j51z
4E20U36k520
5F21V37l531
6G22W38m542
7H23X39n553
8I24Y40o564
9J25Z41p575
10K26a42q586
11L27b43r597
12M28c44s608
13N29d45t619
14O30e46u62+
15P31f47v63/

变种

URLBASE64

base64传统编码中会出现+, /两个会被url直接转义的符号,因此 base64传统编码中会出现+, /两个会被url直接转义的符号,因此 URLBASE64 将62,63标准中的字符替换为 “-”,“_”

MIMEBASE64X

在电子邮件中,根据RFC 822规定,每76个字符,还需要加上一个回车换行。

无用的知识

  1. base64 只是数据序列号算法,不是加密/压缩算法, 理论上编码后的数据比原始数据略长,为原来的4/3 (MIME 约为原长的135.1%)

  2. 图片字符串保存

Data URI RFC 2397定义的一种把小文件直接嵌入文档的方案

data:[<mediatype>][;base64],<data>

data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QAqRXhpZgAASUkqAAgAAAABADEBAgAHAAAAGgAAAAAAAABHb29nbGUAAP/bAIQAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFAEDBAQFBAUKBQUJFA0LDhQVFBMUFBQUFBQSDxMVFBIRFBQQExMRFRQVFBUVExUREhQUFBQVFRIVEg8UFBQUFREV/8AAEQgAIAAgAwERAAIRAQMRAf/EABgAAAMBAQAAAAAAAAAAAAAAAAYHCAUJ/8QAKRAAAQQBAgUEAwEBAAAAAAAAAQIDBAURBhIABwgTIRQxMkEiJGFxFf/EABkBAAMBAQEAAAAAAAAAAAAAAAIEBQEDBv/EACoRAAECBAQFBAMAAAAAAAAAAAECAwARITEEEkHwE1FhcZEiwdHhQkOB/9oADAMBAAIRAxEAPwCYOUSa2DfxpN7pMaiTIAbhwnlqDIkbhtLqEkFQSPogpUcZxgZiKB/GMYQnMM9veOp+m9c10Sgua6lo6cXGnoipS9DQDENuplKR2lpjBeEdxO0oCylRCkZCcgcPlDgAIoIaHDtKEf1Ccy4EG7nGx0aawvVSTGt24pjPRVrSkKac9sHyhQSc/BXttGZmJddQSU3tvfaDWhpLJUB6tIjvl3bKd1KqHZBHecrX4vdASpPdW60QCtOdxIQokfw8NtqmJi3iJtdIHOUl1qmt5hae9OqJbvmaB6R9wIDoIIwFKThJA8j+hP8AOGQ3I2jA6kw/qPma3ovqhudZtXEsXU1aY1lDerz5bCdje9xOBtIaGw+TgY+iAwG33TJAn8Qa8Sxh0guGUzL+we9VGqlcx+V9UWEyKyWqaizZesIhZceCWnWwgJXhSdwcOFKTnKfiCQeE8Sj9JEyfHmOSsQDKQOvxaJk05oC+evaiel2O0Yx7ym0r7hVuOCSfODj6OSSDjODgQy8AEhP0N6fEDx03MYHL6JEc1LpxEa3AvZj6eyqNu2Qle4K8YJIAyQDjzt84J49AhGGab4jxzHkNO532MRlqxjr3DYTlSPyOvOQ33E4a0bQkufzQEDUmug36au/6AnvMqbdkOsuJJU0hKgErAIPsRgjCfBHGDEs8EqbbE7ffX2jucJiC/kddMic1OVss9NKipr3igObESq1V08W+poa5E56I/DcbkPHLwbQ8kKAUpJwDk5wPvicyQVZjWKmIbOT0UPO+/MT9VTvXXBl1Mkyg4wouxAyUvjBzuKQT8diz+JIwvJ2+3DGZIeDTRKhI2Bp35SrWo6zpEibiGeJiUhFZTmJEnkaGvIgHpYkT6Y+n67VzVg2+rL2LpKro1iYVTXB+4shaUttbgASCcqP0P98IIksqpI9YvghNAIw+qOXqfVfNW3c07VvSKeG6liPcsHYmSlLYKlICsfhlS8kZCgAQcDzgKBcwWYGsPvktqBTfQjruvu7iILuLHkIh1Qf7MxxSV720HzuKl+yQjOfrz4GgZgSDBlSZgXG+8Jewq59FFaplsFYTW+psLGFMTHlxnUpDv6y1ABbmcnZtGRn4fieF21KQrMlUjpuemkK8Pj5isekk3FCNZjWP/9k= 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值