Base64

一丶Base64 是什么?

Base64是一种数据编码方式,主要用于将任意类型的数据转换为可打印的ASCII字符,以便于网络传输以及存储。Base64最初是在电子邮件中使用,因为电子邮件只支持ASCII字符集,而二进制数据无法直接放在邮件正文中。
Base64使用的字符集包括“A”到“Z”、“a”到“z”、“0”到“9”、“+”、“/”和“=”,总共64个字符,因此得名。

二丶Base64应用场景

Base64广泛应用于网络传输、数据存储和加密等领域。以下是一些具体的应用场景:

  1. 网络传输
    Base64适用于各种网络传输协议,例如HTTP、FTP等。常见的应用包括将图片、视频等二进制数据转换为Base64字符串,然后在网页中以Data URI的方式使用。

  2. 数据存储
    Base64可以将二进制数据存储为可打印的文本格式,以便于在文本文件中存储和读取。例如,一些数据库软件会将二进制数据转换为Base64字符串存储。

  3. 加密
    在某些情况下,Base64也被用作加密算法。尽管Base64是一种编码方式,而不是加密方式,但是根据特定的需求和使用场景,可以将其作为简单的加密算法使用。

三丶编码原理

一篇文章弄懂Base64编码原理

四丶Base64的优缺点

  1. 优点
    Base64的主要优点是具有平台无关性和数据安全性。
    a. 平台无关性
    因为Base64使用的字符集是ASCII字符集,因此可以在任何系统、任何编程语言中使用。这使得Base64成为一种非常通用的数据编码方式。
    b. 数据安全性
    由于Base64将二进制数据转换为可打印字符,因此可以避免一些不可见字符在传输过程中被过滤或替换的问题。同时,Base64也能够防止一些不可预料的输入由于编码而导致系统崩溃。
    c.难识别
    经过Bas64编码的字符,人的肉眼是识别不出来信息的。在安全上可以得到保障

  2. 缺点
    a. 数据增大
    Base64编码会将原本二进制的数据转换为可打印的ASCII字符,这意味着编码后的数据实际上比原始数据要大。具体来说,每三个字节的原始数据会被编码为四个字符,因此Base64编码会将数据增大约33%。
    b. 某些字符集不支持
    尽管Base64使用的字符集是ASCII字符集,但是在一些非常规的字符集中,可能会出现无法识别Base64字符的情况。

五丶编码和解码的使用

Base64工具类提供了一套静态方法获取下面三种BASE64编解码器

基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/。
URL:输出映射到一组字符A-Za-z0-9+_,输出是URL和文件。
MIME:输出隐射到MIME友好格式。输出每行不超过76字符,并且使用’\r’并跟随’\n’作为分割。编码输出最后没有行分割。

基本编码

String original = "床前明月光,疑是地上霜";	//原始字符串
String strEncode = Base64.getEncoder().encodeToString(original.getBytes(StandardCharsets.UTF_8));
System.out.println("原始串:"+original);
System.out.println("Base64编码 :"+strEncode);
//解码
byte[] strDecode = Base64.getDecoder().decode(strEncode);
System.out.println("Base64解码:"+new String(strDecode,StandardCharsets.UTF_8));

打印
在这里插入图片描述
其他用法请参考
在这里插入图片描述

本文有借鉴到以下文章:
https://www.python100.com/html/91084.html
https://blog.csdn.net/FightingITPanda/article/details/83305100.
https://www.runoob.com/java/java8-base64.html
https://blog.csdn.net/mijichui2153/article/details/106629860

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王睿丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值