什么是金融危机iOSBase64编码
⼀、介绍
Base64编码是⼀种数据编码⽅式,⽬的是让数据符合传输协议的要求。能够将任何⼆进制数据,转换成只有64 +1(“=”等号)个字符组成的⽂本⽂件。
提⽰:Base64不是加密算法,只是⼀种编码算法,对数据内容进⾏编码不以明⽂来传输。
标准Base64编码使⽤的64个字符:
Base64编码表
⼆、作⽤
早期的传输协议,如邮件传输SMTP协议,只能传输ASCII编码中可打印字符,导致原本8bit字节码(0-255)超出了可⽤范围。所以Base64将原本ASCII码的控制字符甚⾄是ASCII编码之外的字符都转换成可打印的6bit字符。
提⽰:ASCII编码的范围是0-127,其中0-31和127位共33个字符属于控制字符,剩下的32-126属于可打印字符。
三、原理
编码过程:
中国五大名山1、按字符串长度,以每3个8bit的字符为⼀组
2、对每组获取每个字符的ASCII编码(去ASCII编码表每个字符的码位)
3、将ASCII编码转换成8bit的⼆进制,得到⼀组3*8=24bit的字节
4、再将这24bit划分为4个6bit的字节,并在每个6bit的字节前⾯都填两个⾼位0,得到4个8bit的字节
5、将这4个8bit的字节转换成10进制,对照Base64编码表 (下表),得到对应编码后的字符。
注意:
1. 要求被Base64编码字符是可以⽤8bit来表⽰,也就是⼀个字节来表⽰的,所以须在ASCII编码范围内,\u0000-\u00ff,中⽂不⾏,中⽂需birth
要两个字节来表⽰。
2. 如果被编码字符长度不是3的倍数的时候,则都⽤0代替,对应的输出字符为=。
⽰例:对 Hello! 进⾏Base64编码,按照ASCII表,其转换过程如下图所⽰:
Base64编码过程
Hello! 的Base64编码结果为 SGVsbG8h 。
原始字符串长度为6个字符,编码后长度为8个字符,每3个原始字符经Base64编码成4个字符,编码前后长度⽐4/3。
避光垫这个长度⽐很重要 。⽐原始字符串长度短,则需要使⽤更⼤的编码字符集,长度⽐越⼤,则需要传输越多的字符,传输时间越长。
Base64应⽤⼴泛的原因是在字符集⼤⼩与长度⽐之间取得⼀个较好的平衡,适⽤于各种场景。
注意:Base64编码是每3个原始字符编码成4个字符,如果原始字符串长度不能被3整除,那怎么办?使⽤0值来补充原始字符串。
⽰例:对 Hello!! 进⾏Base64编码:
中国好书
⽤0补充原始字符串的Base编码过程
注:图中蓝⾊背景的⼆进制0值是额外补充的。
Hello!! 的Base64编码的结果为 SGVsbG8hIQAA 。
漫画:什么是 Base64 算法?iOS开发探索-Base64编码
加仑换算升关于base64编码的原理及实现ASCII码对照表
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论