四、关于
public static void main(String[] args) {BASE64Encoder encoder = new BASE64Encoder();String s = "Man";String encoded = encoder.encode(s.getBytes());System.out.println("ecoded Man " + encoded);s = "Mo";String encoded = encoder.encode(s.getBytes());System.out.println("ecoded Mo" + encoded);s = "c";String encoded = encoder.encode(s.getBytes());System.out.println("ecoded c" + encoded);}
是一种基于64个可打印字符来表示二进制数据的表示方法 。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符 。三个字节有24个比特,对应于4个单元,即3个字节可表示4个可打印字符 。它可用来作为电子邮件的传输编码 。在中的可打印字符包括字母A-Z、a-z、0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同 。是一种可逆的编码方式 。最常见的表现就是在于可以用对图片编码变成流,反过来也可以把流转为图片,常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据 。包括MIME的email、在XML中存储复杂数据 。
这是编码后的数据是一个字符串,其中包含的字符为:A-Z、a-z、0-9、+、/共64个字符(其实是65个字符,而“=”是填充字符) 。
文章插图
当长度为3个字节的数据经过编码后就变为4个字节,比如
文章插图
如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行的编码 。在编码后的文本后加上一个或两个’=’号,代表补足的字节数 。也就是说,当最后剩余一个八位字节(一个byte)时,最后一个6位的字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2个byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号 。参考下表:
文章插图
引自Wiki百科
- 六 基于FreeRTOS与MQTT的物联网技术应用系列——步进电机控制基于Cr
- 用渐变效果做小球转动——ps
- 裁员潮来袭:Android开发如何自救?未来三年,趁早做好这3个准备
- 三 Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量
- android基于虹软的人脸识别+测温+道闸项目实现
- SparkListener血缘——Openlineage插件实现思路
- Android studio制作类微信界面步骤
- USB摄像头——v4l2打开设备、获取设备支持的格式【以t113-s3为例】
- 从局部视野到全局推进:华为加速生态进阶
- 【大数据day04】——JVM优化 上(jvm的内存模型