>

Base64最早是用来解决电子邮件的传输问题,2.字节

- 编辑:银河国际手机客户端 -

Base64最早是用来解决电子邮件的传输问题,2.字节

python 字节调换来图像

Atitit.Base64编码原理与落实设计,atitit.base64编码

Atitit.Base64编码原理与落到实处设计

 

 

  1. Base64编码1

1.1. 怎么要用本身的base64编码方案1

  1. Base64编码由来1

  2. Base64编码原理1

3.1. 具体来讲,转变方式能够分成四步:2

3.2. 注意2

3.3. Padding3

  1. URL安全的Base64编码3

 

使用base64

1. Base64编码

1.图纸转成字节使用:  base64.b64encode()

1.1. 干什么要用自身的base64编码方案

防止apache codec  jdk的jar冲突。

 

2.字节转成图片: base64.b64decode()

2. Base64编码由来

Base64最初是用来减轻电子邮件的传导难题。

守旧的电子邮件是壹玖捌伍年定下工夫专门的学业的,详见rfc0822。该职业的多个首要特色,正是规定电子邮件只可以使用ASCII可打字与印刷字符。那就招致非马耳他语字符或二进制文件(比方图片)分裂通过电子邮件实行传输了。

我::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 Ake巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:[email protected]

转发请注脚来源: 

 

 

 

3. Base64编码原理

简易的话, Base64编码正是从ASCII码中选出七十多少个字符----大写字母A-Z、小写字母a-z、数字0-9、符号"+"、"/"(再增多作为填充字符的"=",实际上是六16个字符),作为二个宗旨字符集。然后,别的具备符号都转换来那个字符集中的字符。

 

图片字节串:

3.1. 具体来讲,转变方式得以分为四步:

1. 将每四个字节分成风流倜傥组,豆蔻梢头共23个二进制位:3*8=24

2. 将那二十二个二进制位分成4组,每组有6个二进制位:24/4=6

3. 在每组前加两00,扩充成三拾伍个二进制位,即4个字节:4*(6+2)=32

4. 

基于上边包车型地铁编码表,获得扩张后种种字节的对应标志,就是Base64的编码值

5. 

Value Encoding  Value Encoding  Value Encoding  Value Encoding

    0 A            17 R            34 i            51 z

    1 B            18 S            35 j            52 0

    2 C            19 T            36 k            53 1

    3 D            20 U            37 l            54 2

    4 E            21 V            38 m            55 3

    5 F            22 W            39 n            56 4

    6 G            23 X            40 o            57 5

    7 H            24 Y            41 p            58 6

    8 I            25 Z            42 q            59 7

    9 J            26 a            43 r            60 8

   10 K            27 b            44 s            61 9

   11 L            28 c            45 t            62 +

   12 M            29 d            46 u            63 /

   13 N            30 e            47 v

   14 O            31 f            48 w         (pad) =

   15 P            32 g            49 x

   16 Q            33 h            50 y

6. 

 

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

3.2. 注意

1. 因为改变后的各类字符的最高两位都以0,所以其实有效位数是6位,也正是26=65个字符就能够覆盖全部的编码。

2. 如果剩下的字符不足3个字节,则用0填充,输出字符使用"=",因而编码后输出的文书末尾恐怕会产出1或2个"="。

3. 因为Base64将3个字节转产生4个字节,因而Base64编码后的公文,会比原来的小说件大出八分之豆蔻梢头左右。

 

 

3.3. Padding

Base64是四个字节(Bytes)作为风姿浪漫组(24-bit block)的编码调换,假使字节数不是三的倍数,那么就能够出最后意气风发组独有八个还是八个字节的情事,按上边的规行矩步管理:

1. 一个字节的地方:将那贰个字节的8个二进制位,依照每组6个二进制位转成二组,最终风度翩翩组除了前方加二个0以外,前面再加4个0。这样获得一个二人的Base64编码,再在末尾补上四个"="号。

2. 三个字节的状态:将那一个字节的一日千里共16个二进制位,按每组6个二进制位转成三组,最终风流浪漫组除了前方加多个0以外,后边也要加五个0。那样得到五个四人的Base64编码,再在末尾补上贰个"="号。

 

参谋base64架构图片

 

示范代码: 字节解码成图片

4. URL安全的Base64编码

是因为‘+’,‘/’五个字符在UENVISIONL中有新鲜意义,将Base64编码后的数码在经过U英菲尼迪Q60L传输时索要经过U宝马7系L编码举行转义,不过那样子会促成UWranglerL无意义的变长,并且多了三个U安德拉L编解码步骤。为了制止这么些难点,出现了风起云涌种用于UXC90L的改革Base64编码变种,它实质上便是大致的把标准Base64中的'+'和'/'分别改成了'-'和'_'。对于填充字符'=',有个别变种是把它向来去掉,有个别则是把它替换来'.'。

 

Base64编码学习笔记 - 简书.html

 

Atitit. Base64编码 原理与达成统一筹算 1 . Base64编码 1 1 .1. 为何要用本身的 base64 编码方案 1 2...

res为图片字节串

from PIL import Image
import base64
img = base64.b64decode(res)

file = open('test.jpg','wb')
file.write(img)
file.close()

 

本文由编程知识发布,转载请注明来源:Base64最早是用来解决电子邮件的传输问题,2.字节