java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java BASE64加密/解密

java中BASE64加密/解密详解(附带源码)

作者:Katie。

这篇文章主要介绍了java中BASE64加密/解密的相关资料,并详细展示了如何在Java中使用内置的Base64类进行编码和解码,文章还涵盖不同类型的Base64编码及其应用场景,需要的朋友可以参考下

1. 项目背景与介绍

在日常开发中,Base64 编码是一种常见的数据处理方式,广泛应用于以下场景:

本项目将展示如何使用 Java 内置的 Base64 类进行 Base64 编码(加密)和解码(解密)。

2. 相关知识

2.1 Base64 简介

Base64 是一种基于 64 个可打印字符的编码方式,它可以将 任意二进制数据转换为 ASCII 字符串,避免在传输或存储时出现编码问题。

Base64 采用的 64 个字符如下(大小写字母 + 数字 + 两个符号):

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
+/

此外,Base64 可能会在末尾填充 = 号,使其长度为 4 的倍数。

2.2 Java Base64 类

从 Java 8 开始,java.util.Base64 提供了三种 Base64 编码器:

编码器说明
Base64.getEncoder()标准 Base64 编码
Base64.getUrlEncoder()URL 安全的 Base64 编码(+ 替换为 -/ 替换为 _
Base64.getMimeEncoder()MIME 编码(每 76 个字符换行)

相应地,解码器 Base64.getDecoder() 可以将 Base64 字符串转换回原始数据。

3. 项目实现思路

4. 完整代码实现

以下 Java 代码实现了 Base64 编码和解码功能,支持三种模式(标准、URL 安全、MIME)。

import java.util.Base64;

/**
 * Base64EncoderDecoder 类用于演示 Java 8 提供的 Base64 编码和解码功能。
 * 该类支持三种编码模式:标准 Base64、URL 安全 Base64、MIME Base64。
 */
public class Base64EncoderDecoder {

    /**
     * 使用标准 Base64 编码字符串
     *
     * @param input 原始字符串
     * @return Base64 编码后的字符串
     */
    public static String encodeBase64(String input) {
        return Base64.getEncoder().encodeToString(input.getBytes());
    }

    /**
     * 使用标准 Base64 解码字符串
     *
     * @param base64Str Base64 编码的字符串
     * @return 解码后的原始字符串
     */
    public static String decodeBase64(String base64Str) {
        byte[] decodedBytes = Base64.getDecoder().decode(base64Str);
        return new String(decodedBytes);
    }

    /**
     * 使用 URL 安全的 Base64 编码字符串
     *
     * @param input 原始字符串
     * @return URL 安全的 Base64 编码字符串
     */
    public static String encodeBase64Url(String input) {
        return Base64.getUrlEncoder().encodeToString(input.getBytes());
    }

    /**
     * 使用 URL 安全的 Base64 解码字符串
     *
     * @param base64UrlStr URL 安全的 Base64 编码字符串
     * @return 解码后的原始字符串
     */
    public static String decodeBase64Url(String base64UrlStr) {
        byte[] decodedBytes = Base64.getUrlDecoder().decode(base64UrlStr);
        return new String(decodedBytes);
    }

    /**
     * 使用 MIME Base64 编码字符串(适用于邮件和换行文本)
     *
     * @param input 原始字符串
     * @return MIME Base64 编码的字符串
     */
    public static String encodeBase64Mime(String input) {
        return Base64.getMimeEncoder().encodeToString(input.getBytes());
    }

    /**
     * 主方法,测试 Base64 编码与解码
     *
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        String originalString = "Hello, Base64!";

        // 标准 Base64 编码/解码
        String encoded = encodeBase64(originalString);
        String decoded = decodeBase64(encoded);

        System.out.println("原始字符串: " + originalString);
        System.out.println("Base64 编码: " + encoded);
        System.out.println("Base64 解码: " + decoded);

        // URL Base64 编码/解码
        String urlEncoded = encodeBase64Url(originalString);
        String urlDecoded = decodeBase64Url(urlEncoded);

        System.out.println("\nURL 安全 Base64 编码: " + urlEncoded);
        System.out.println("URL 安全 Base64 解码: " + urlDecoded);

        // MIME Base64 编码(用于邮件等换行文本)
        String mimeEncoded = encodeBase64Mime(originalString);
        System.out.println("\nMIME Base64 编码: " + mimeEncoded);
    }
}

5. 代码解读

5.1 标准 Base64 编码

5.2 URL 安全 Base64 编码

5.3 MIME Base64 编码

6. 项目总结与扩展

6.1 本项目的收获

6.2 可能的扩展方向

通过本项目的实现,读者不仅可以掌握 Base64 编码/解码的基本方法,还能更好地理解其在信息传输和数据存储中的实际应用。希望这篇文章能帮助你深入理解 Base64 技术,并在项目中灵活应用。

总结

到此这篇关于java中BASE64加密/解密的文章就介绍到这了,更多相关java BASE64加密/解密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文