Java实现Base64算法
Base64是一种基于64个字符的编码算法,经过Base64编码的数据会比原始数据略长,为原来长度的4/3倍。Base64算法中,等号用来补位。
URLBase64算法主要是将"+"和"/"替换成了"-"和"_"符号,对于补符"=",一种建议是使用"."符号,另一种是建议使用"~"。
URLBase64算法主要是将"+"和"/"替换成了"-"和"_"符号,对于补符"=",一种建议是使用"."符号,另一种是建议使用"~"。
Base64算法并不能叫做加密算法,充当密钥的字符映射表公开,直接违反了柯克霍夫原则,且Base64算法的加密强度并不高。因此,不能将Base64算法看作现代加密算法。
jdk中有自带Base64算法的实现,示例代码如下:
import java.util.Base64; import org.junit.Test; /** * Base64编码与解码测试类 * */ public class Base64CoderTest { /** * Base64编码与解码测试类 * 使用jdk 自带的 Base64 API * */ @Test public final void demo() throws Exception { String str = "Base64编码与解码测试"; System.err.println("原文: " + str); byte[] input = str.getBytes(); // Base64编码 Base64.Encoder encoder = Base64.getEncoder(); String data = encoder.encodeToString(input); System.err.println("编码后: " + data); // Base64解码 Base64.Decoder decoder = Base64.getDecoder(); byte[] output = decoder.decode(data); System.err.println("解码后: " + new String(output)); // UrlBase64编码 Base64.Encoder urlEncoder = Base64.getUrlEncoder(); String urlData = urlEncoder.encodeToString(input); System.err.println("url编码后: " + urlData); // UrlBase64解码 Base64.Decoder urlDecoder = Base64.getUrlDecoder(); byte[] urlOutput = urlDecoder.decode(urlData); System.err.println("url解码后: " + new String(urlOutput)); } }
运行结果如下:
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。