Java Base64编码使用介绍
Base64编码介绍
BASE64 编码是一种常用的字符编码,Base64编码本质上是一种将二进制数据转成文本数据的方案。
但base64不是安全领域下的加密解密算法。能起到安全作用的效果很差,而且很容易破解,他核心作用应该是传输数据的正确性,有些网关或系统只能使用ASCII字符。
Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而且base64特别适合在http,mime协议下快速传输数据。
使用场景
1.对数据传输过程中不可见字符的处理;
2.将图片二进制转为Base64编码嵌入网页,可有效减少HTTP请求图片带来性能提升;
Java对于Base64编码的支持,
这里只讲原生JDK支持,足够你用的,别搞些第三方的:
package com.dylan.security;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.IOException;
import java.util.Base64;
/**
* Base64编码测试类
*
* @author xusucheng
* @create 2017-12-19
**/
public class TestBase64 {
public static final String toEncode="Hello Base64!";
/**
* jdk8以前
* @throws IOException
*/
public static void TestBase64Old() throws IOException {
//编码
BASE64Encoder encoder=new BASE64Encoder();
String encoded = encoder.encode(toEncode.getBytes());
System.out.println("编码后:"+encoded);
//解码
BASE64Decoder decoder=new BASE64Decoder();
byte[] decoded = decoder.decodeBuffer(encoded);
System.out.println("解码后:"+new String(decoded));
}
/**
* jdk1.8后
*/
public static void TestBase64New(){
//编码
String encoded = Base64.getEncoder().encodeToString(toEncode.getBytes());
System.out.println("编码后:"+encoded);
//解码
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.println("解码后:"+new String(decoded));
}
public static void main(String[] args) throws IOException {
System.out.println("Before JDK1.8:");
TestBase64Old();
System.out.println("After JDK1.8:");
TestBase64New();
}
}
输出:
Before JDK1.8:
编码后:SGVsbG8gQmFzZTY0IQ==
解码后:Hello Base64!
From JDK1.8:
加密后:SGVsbG8gQmFzZTY0IQ==
解码后:Hello Base64!
Java Base64编码使用介绍的更多相关文章
- Kotlin/Java Base64编码和解码(图片、文件)
原文: Kotlin/Java Base64编码和解码(图片.文件) | Stars-One的杂货小窝 最近在项目中使用到了Base64编码和解码,便是稍微写篇文章记录一下 PS:本文代码都是使用Ko ...
- android Java BASE64编码和解码二:图片的编码和解码
1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...
- android Java BASE64编码和解码一:基础
今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...
- Java Base64编码解码实现
我尝试过两种方式:java自带的sun.misc的工具类,还有commons-codec.jar 1.sun.misc的工具类 String encoderStr = null; BASE64Enco ...
- java base64编码 加密和解密(切记注意乱码问题)
BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和 ...
- Java Base64编码与图片互转
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- java base64编码、解码的三种方式
java base64编码.解码 CreationTime--2018年7月24日10点38分 Author:Marydon 1.方式一:DatatypeConverter 说明:使用jdk自带的 ...
- java base64编码解码
第一种.DatatypeConverter 使用JDK自带DatatypeConverter.java类实现,JDK版本必须>=1.6 /** * @Description base64编码 * ...
- Java Base64 编码解码方案总结
Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便.在实际应用上,Base64除了能将Binary资料可视化之外 ...
- 【java】java base64编码与解码
参考地址:http://blog.csdn.net/zhou_kapenter/article/details/62890262 要求:JDK1.8+ 使用java原生工具类即可实现 [这里展示字符串 ...
随机推荐
- Python注释是什么东东
注释 标注解释,目的是帮助读者理解的文本 也就是说,注释首先是文本,其二是说明,其三是思路,其四是例子注释有两种形式 1. # ... 单行注释 用于对某句语句或语句块进行解释 放在语句块的头行或一个 ...
- [转帖]如何使用coredump
一.coredump 当用户态进程出现异常后,在该进程的执行目录下生成对应的coredump文件,如果我们想将coredump生成的位置做改变,就需要如下设置. echo "/home/co ...
- [转帖]TIDB - 使用 Dumpling 和 TiDB Lightning 迁移Mysql数据至TIDB中
一.TiDB Lightning介绍 TiDB Lightning 是一个将全量数据高速导入到 TiDB 集群的工具,目前支持 Mydumper 或 CSV 输出格式的数据源.你可以在以下两种场景下使 ...
- [转帖]在龙芯3A5000上测试SPEC CPU 2006
https://baijiahao.baidu.com/s?id=1707601012673143593&wfr=spider&for=pc 注:百家号中,一些文本.代码等的排版格式无 ...
- [转帖]从v8到v9,Arm服务器发展之路
https://zhuanlan.zhihu.com/p/615344155 01 ARM:3A大作 将 CPU 的设计与制造相分离的代工模式,给 AMD 提供了高度的灵活性.第二.三代 EPYC ...
- SQL注入payload学习整理
SQLserver 用的payload 0101%'and 1=(select @@version) and '%'=' GS的一个客户端参数 <add PropertyName="F ...
- CS231N Assignment1 SVM 笔记
svm.ipynb 为SVM实现一个完全矢量化的损失函数 为其解析梯度实现完全矢量化表达式 使用数值梯度检查实现结果 使用验证集调整学习率和正则化 使用 SGD 优化损失函数 可视化最终学习权重 第一 ...
- 一种读取亿级doris数据库的方法
工作中,常常需要将线上doris同步至集市.读取doris数据同读取常规mysql基本相同.如果数据行小于千万,比较简单的方式直接单节点连接.读取和存储.Python示例如下: def get_dat ...
- JS遍历树形数据
树形数据结构遍历某个key值 深度优先遍历(DFS) let tree = [{ id: '1', name: '节点1', children: [{ id: '1-1', name: '节点1-1' ...
- 果然,基于 VictoriaMetrics 修改而来的 VictoriaLogs 来了!!!
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 2022 年 6 月的时候,正在痛苦的研究 grafana ...