首页 > 编程语言 >java Base64 加密

java Base64 加密

时间:2023-07-17 20:32:22浏览次数:29  
标签:编码 加密 String java 解码 Base64 字符串 Java

Java Base64 加密解密详解

在实际应用开发中,我们经常需要对数据进行加密和解密操作。其中,Base64 是一种常用的编码方式,它将二进制数据转换为可打印的 ASCII 字符串,使得数据可以在网络传输中进行安全的传递。本文将介绍 Java 中的 Base64 加密和解密操作,并提供相应的代码示例。

Base64 简介

Base64 是一种将二进制数据转换为 ASCII 字符串的编码方法。它将每 3 个字节的数据编码为 4 个可打印的 ASCII 字符,因此 Base64 编码后的数据长度总是原数据长度的约 4/3 倍(不足 4 的倍数时进行补位)。Base64 编码表由 64 个字符组成,其中包含大小写字母、数字和两个特殊字符 "+", "/",同时还有一个填充字符 "="。Base64 编码是一种可逆操作,可以通过解码操作还原原始数据。

Java 中的 Base64

在 Java 中,Base64 编码和解码操作可以通过 java.util.Base64 类来实现。Java 8 之前,我们可以使用 sun.misc.BASE64Encodersun.misc.BASE64Decoder 类来执行相同的操作,但是这两个类在 Java 9 中被标记为过时。下面我们将分别介绍如何进行 Base64 编码和解码操作。

Base64 编码

以下是使用 Java 进行 Base64 编码的示例代码:

import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String input = "Hello, World!";
        
        // 使用 Base64 编码
        String encoded = Base64.getEncoder().encodeToString(input.getBytes());
        System.out.println("Encoded: " + encoded);
    }
}

在上述代码中,我们首先将原始数据转换为字节数组,并使用 Base64.getEncoder().encodeToString() 方法对字节数组进行编码。最后,我们将编码后的结果打印出来。运行上述代码,将输出以下结果:

Encoded: SGVsbG8sIFdvcmxkIQ==

可以看到,原始数据 "Hello, World!" 被成功地转换为 Base64 编码字符串。

Base64 解码

以下是使用 Java 进行 Base64 解码的示例代码:

import java.util.Base64;

public class Base64Example {
    public static void main(String[] args) {
        String input = "SGVsbG8sIFdvcmxkIQ==";
        
        // 使用 Base64 解码
        byte[] decoded = Base64.getDecoder().decode(input);
        String decodedString = new String(decoded);
        System.out.println("Decoded: " + decodedString);
    }
}

在上述代码中,我们首先将 Base64 编码字符串转换为字节数组,并使用 Base64.getDecoder().decode() 方法对字节数组进行解码。最后,我们将解码后的结果转换为字符串并打印出来。运行上述代码,将输出以下结果:

Decoded: Hello, World!

可以看到,Base64 编码字符串 "SGVsbG8sIFdvcmxkIQ==" 被成功地解码为原始数据 "Hello, World!"。

总结

通过本文的介绍,我们了解了 Java 中如何使用 Base64 进行加密和解密操作。Base64 编码是一种常用的数据编码方式,可以将二进制数据转换为可打印的 ASCII 字符串,使得数据可以在网络传输中进行安全的传递。在实际应用开发中,我们经常需要对敏感数据进行加密操作,Base64 是一种简单有效的编码方式之一。在使用 Java 进行开发时,我们可以借助 java.util.Base64 类来实现 Base64 编码和解码操作。希望本文对你理解和应用 Base64 有所帮助。

注意:本文示例代码基于 Java 8 版本进行演示。

标签:编码,加密,String,java,解码,Base64,字符串,Java
From: https://blog.51cto.com/u_16175519/6754250

相关文章

  • java Array工具类构建数组
    JavaArray工具类构建数组在Java编程中,数组是一种重要的数据结构,它可以用于存储和操作一组相同类型的数据。在构建数组时,我们可以使用Java的Array工具类来帮助我们更轻松地创建和操作数组。本文将介绍如何使用JavaArray工具类来构建数组,并提供一些常用的示例代码。1.导入Array......
  • java @path
    实现Java@Path注解的步骤作为一名经验丰富的开发者,你即将向一位刚入行的小白解释如何实现Java@Path注解。这个注解用于标识RESTfulAPI中的路径。步骤概览下面是实现Java@Path注解的步骤概览,我们将通过表格的形式展示每个步骤所需的操作:步骤操作代码1.引入相关依......
  • java @Dict多个值
    Java中的@Dict多个值在Java编程中,我们经常需要处理与字典相关的数据,例如将数据库查询结果转换为可读的文字描述。在实际开发中,我们可能需要根据字典表中的多个值进行查询和转换。为了简化这一过程,我们可以使用@Dict注解来实现多个值的转换。什么是@Dict注解?@Dict注解是一种用于......
  • Java数组
    Java数组数组概述数组的定义数组是相同类型数据的有序结合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们数组声明创建首先必须声明数组变量,才能在程序中使用数组.下面是声明......
  • Java从零基础到架构师再到运维的学习路线
    Java从零基础到架构师再到运维的学习路线1.Java基础知识:-Java语法和基本数据类型-面向对象编程概念:类、对象、继承、封装、多态等-流程控制和循环:条件语句、循环语句-异常处理:异常类型、try-catch-finally块-集合框架:-数组:一维数组和多维数组,数组的操......
  • java byte[] 转化 float
    Javabyte[]转化为float在Java中,byte[]表示一个字节数组,而float表示一个单精度浮点数。在某些情况下,我们需要将byte[]转化为float。本文将介绍如何在Java中实现这一转化过程,并提供相应的代码示例。转化过程概述将byte[]转化为float需要经过以下几个步骤:将byt......
  • java byte char转换
    JavaByte和Char转换流程图步骤描述1创建一个字节流对象,读取字节数据。2将字节转换为字符。3创建一个字符流对象,写入字符数据。4关闭流对象。详细步骤1.创建一个字节流对象,读取字节数据为了实现字节到字符的转换,首先我们需要读取字节数据。可以通过......
  • java bean、EJB、POJO区别
    JavaBean、EJB、POJO区别在Java开发中,我们经常会听到三个词,JavaBean、EJB和POJO。它们在Java开发中有着不同的角色和用法。本文将详细介绍它们的区别,并给出相关的代码示例。JavaBeanJavaBean是一种Java语言规范,用于描述一种可重用的组件。它是一种特殊的类,遵循一些特定的命......
  • java base64后比C#base64后少一位
    Java与C#的Base64编码差异在Java和C#中,Base64编码是常用于将二进制数据转换为可打印字符的编码方式。Base64编码可以用于数据传输、数据存储和数据加密等多种场景。然而,尽管Java和C#都提供了Base64编码的支持,但在实际应用中我们可能会遇到一种情况:通过Java进行Base64编码后的结果......
  • java base64 去掉前缀
    JavaBase64去掉前缀的实现步骤在Java中,要去掉Base64编码的前缀,可以通过一系列的步骤来实现。下面是整个流程的步骤表格:步骤描述步骤1将Base64编码的字符串转换为字节数组步骤2使用Java提供的Base64解码类解码字节数组步骤3将解码后的字节数组转换为字符串......