Android数据编码之Base64
什么是Base64
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。
很多人把他叫做Base64加密,其实Base64不是一种加密方式,并不能起到加密的效果,它只是一种编码方式。Base64是基于以下64个可见字符实现的,所以叫Base64。
Base64编码的作用
Base64编码在实际开发中有相当广泛的用途
在计算机中任何数据都是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。
对证书来说,特别是根证书,一般都是作Base64编码的,因为它要在网上被许多人下载。电子邮件的附件一般也作Base64编码的,因为一个附件数据往往是有不可见字符的。
Base64编码在Android中的使用
Adroid中通过Base64类直接实现Base64的编码和解码
String strEncode = Base64.encodeToString("Hello WuXiaAChao!".getBytes(), Base64.DEFAULT);
String strDecode = new String(Base64.decode(strEncode, Base64.DEFAULT));
Base64--编码后数据: SGVsbG8gV3VYaWFBQ2hhbyE=
Base64--解码后数据: Hello WuXiaAChao!
Adroid中Base64.DEFAULT参数说明
- DEFAULT 这个参数是默认,使用默认的方法来加密
- NO_PADDING 这个参数是略去加密字符串最后的”=”
- NO_WRAP 这个参数意思是略去所有的换行符(设置后CRLF就没用了)
- CRLF 这个参数是Win风格的回车换行符,意思就是使用CR(回车)LF(换行)这一对作为一行的结尾,而不是Linux/Unix风格的LF(换行)
- URL_SAFE 这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/
Base64编码的实现
Base64是3个字节一组,最后变成4个可见字符。具体实现是:
- 先将3个字符转换ASCII码的二进制共24 bit
- 再将24 bit按6 bit一组分成4组
- 每组的高位补两个0,变成4个字节
- 最后对照Base64字符表转成对应的4个字符
如果目标字符不是3的倍数,多出一个字节的分成6 bit和2 bit两组,2 bit低位补4个0变成6 bit,两组再高位补两个0,最后转成2个Base64字符。因为Base64字符是4个,最后补两个等号,如"a"的Base64编码是"YQ=="。多出两个字符的也是类似处理,不足一组的低位补足6位,再高位补两个0转成Base64编码,最后不足4个的补等号,如"ab"的Base64编码是"YWI="。
Android数据编码之Base64相关推荐
- android bitmap string,Android Bitmap到Base64字符串(Android Bitmap to Base64 String)
Android Bitmap到Base64字符串(Android Bitmap to Base64 String) 如何将一个大的Bitmap(用手机相机拍摄的照片)转换为Base64 String? ...
- Android图片转base64问题记录
1.编码标准有以下几种: CRLF Win风格的换行符,意思就是使用CR和LF这一对作为一行的结尾而不是Unix风格的LF. CRLF是Carriage-Return Line-Feed的缩写,意思是 ...
- Android kotlin 将Base64字符串转换成Bitmap,并在jetpack compose的Image控件中显示
Android kotlin 将Base64字符串转换成Bitmap 前言 代码 将Base64字符串转换成Bitmap 在jetpack compose的Image控件中显示Bitmap 完事 前言 ...
- Android 拍照转 Base64
Android 点击按钮,打开相机拍照, 显示照片,并把照片转Base64格式打印 依赖: dependencies {// 相机拍照依赖implementation 'com.mindorks:pa ...
- android中base64加密,Android应用开发之android自带Base64加密解密
本文将带你了解Android应用开发之android自带Base64加密解密,希望本文对大家学Android有所帮助. android项目引用不到以下两个java类 import sun.misc.B ...
- android 字符串转bitmap,android – 如何将Base64字符串转换为BitMap图像显示在ImageView?...
我有一个Base64字符串,表示一个BitMap图像. 我需要将该字符串转换为BitMap图像,以使用它在ImageView在我的Android应用程序 怎么做? 这是我用来将图像转换为base64字 ...
- Android开发之Base64与bitmap互转的工具类
老套路先看效果图: 如上图:分别是bitmap转base64和base64转bitmap 直接上代码.看工具类 package com.example.apidemo.util; /** Copyri ...
- Android图片的Base64编码与解码
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较 ...
- android 图片转base64内存变大了_开发者最喜爱的图片编码格式:opencv编码,解码,显示base64图片...
由于图片格式尺寸较大,在互联网上若想传递一张图片,往往会 把图片进行格式转换,然后进行数据传输,图片格式往往会转换为base64编码图片 base64编码图片 BASE64编码表 base64编码 是 ...
- Android 图片和Base64转化,并保存相册
现在在Android开发中很少用到Base64的BASE64Encoder及BASE64Decoder,今天在h5中需要将图片的base64数据转化为图片保存到相册,项目中居然找不到BASE64Enc ...
最新文章
- easyui中的tree数据使用说明
- mysql query日期_如何获取mysql中两个日期之间的日期列表select query
- 万向节死锁 gimbal lock
- 讨论计算机在学术领域的应用,BGPLUS实地科研 | 卡内基梅隆大学 | 计算机、人工智能:在科学实验领域的应用...
- 基础算法 —— 高精度计算 —— 高精度加法
- 【英语学习】【Level 07】U07 Stories of my Life L1 Going to the Countryside
- c语言用指针删除链表free,leetcode剑指 Offer 18(删除链表的节点)--C语言实现
- vue.js MVVM模式介绍及案例
- Entity Framework Core DbContext内置方法
- 天涯红旗linux,红旗linux安装中的几点技巧(转载)
- 短视频运营方法分享,三个方面要注意,合理运营才能吸粉引流
- 水晶报表10.0企业版下载地址及注册码
- 最全常用Linux命令升级及面试必备
- 2022年CPU天梯图(7月更新)
- Java并发57:Akka Actors并发框架浅谈及入门示例
- 分享一个商品历史价格查询的网站
- 应用/游戏在三星Galaxy S8及S8+上的适配办法
- Python爬取wallhaven壁纸 2023.1.31
- docker容器内的attached 和detached模式
- python将一个列表赋值给另一个列表_将一个列表分配给另一个