Base64是一种将二进制数据编码为ASCII字符的编码方式,常用于在URL、Cookie、网页表单等场景下传输数据。在Java中,我们可以使用Java 8自带的Base64类来进行Base64编解码操作。在本文中,我们将通过一个简单的在线Base64编解码工具来探讨Base64的相关知识点。
一、工具介绍
本工具支持将字符串进行Base64编码和解码。用户可以直接在输入框中输入需要编码/解码的字符串,点击相应的按钮即可得到结果。
二、Base64编码
Base64编码是将二进制数据每3个字节为一组,将24位划分成4个6位的小组,每个6位作为一个索引,在编码表中查找对应的字符,最终形成4个字符的编码结果。如果原来的二进制数据不足3个字节,在最后一个小组后会添加“=”进行填充。 以下是对应的Java代码:
import java.util.Base64;
public class Base64Demo {
public static void main(String[] args) {
String original = "Hello, world!";
String encoded = Base64.getEncoder().encodeToString(original.getBytes());
System.out.println("编码后的字符串:" + encoded);
}
}
上述代码中,我们首先将原始字符串转换为字节数组,然后使用Base64.getEncoder()获取Base64编码器,调用其encodeToString()方法进行编码。
三、Base64解码
Base64解码就是将编码后的字符串解析成二进制数据,对于每个4个字符为一组的编码数据,将其还原为3个字节,最后组合在一起即可得到原始的二进制数据。 以下是对应的Java代码:
import java.util.Base64;
public class Base64Demo {
public static void main(String[] args) {
String encoded = "SGVsbG8sIHdvcmxkIQ==";
byte[] decoded = Base64.getDecoder().decode(encoded);
String original = new String(decoded);
System.out.println("解码后的字符串:" + original);
}
}
上述代码中,我们首先将编码后的字符串转换为字节数组,然后使用Base64.getDecoder()获取Base64解码器,调用其decode()方法进行解码,再将解码后的字节数组转换为字符串即可。
四、代码实现
以下是在线Base64编解码工具的代码实现:
<meta charset="UTF-8">
<title>在线Base64编解码工具</title>
<h1>在线Base64编解码工具</h1>
<p>请输入需要编码/解码的字符串:</p>
<textarea id="input" rows="10" cols="80"></textarea><br>
<button onclick="encode()">编码</button>
<button onclick="decode()">解码</button><br>
<p>结果:</p>
<textarea id="output" rows="10" cols="80"></textarea><br>
<script>
function encode() {
var input = document.getElementById("input").value;
var output = document.getElementById("output");
output.value = btoa(input);
}
function decode() {
var input = document.getElementById("input").value;
var output = document.getElementById("output");
output.value = atob(input);
}
</script>