当前位置: 首页 > 知识库问答 >
问题:

在Java编码为Base64

翟迪
2023-03-14

我需要在Java的Base64编码中编码一些数据。我该怎么做?提供Base64编码器的类的名称是什么?

我尝试使用sun.misc.base64encoder类,但没有成功。我有下面一行Java七号的代码:

wr.write(new sun.misc.BASE64Encoder().encode(buf));

我在用Eclipse。Eclipse将这一行标记为错误。我导入了所需的库:

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;

但是,它们都显示为错误。我在这里发现了一个类似的帖子。

我使用Apache Commons作为建议的解决方案,包括:

import org.apache.commons.*;

并导入从以下网址下载的JAR文件:http://commons.apache.org/codec/

但问题依然存在。Eclipse仍然显示前面提到的错误。我该怎么办?

共有1个答案

彭海阳
2023-03-14

您需要更改类的导入:

import org.apache.commons.codec.binary.Base64;

然后将类更改为使用Base64类。

下面是一些示例代码:

byte[] encodedBytes = Base64.encodeBase64("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));

然后阅读为什么不应该使用sun.*包。

现在可以在Java ;8中使用java.util.base64。首先,按照通常的方式导入:

import java.util.Base64;

然后使用Base64静态方法,如下所示:

byte[] encodedBytes = Base64.getEncoder().encode("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));

如果您直接想对string进行编码,并将结果作为编码的string,那么您可以使用以下方法:

String encodeBytes = Base64.getEncoder().encodeToString((userName + ":" + password).getBytes());

更多信息请参见Base64的Java文档。

 类似资料:
  • 问题内容: 我需要使用Java中的Base64编码对一些数据进行编码。我怎么做?提供Base64编码器的类的名称是什么? 我试图使用该类,但没有成功。我有以下几行Java 7代码: 我正在使用Eclipse。Eclipse将此行标记为错误。我导入了所需的库: 但是同样,它们两个都显示为错误。我在这里找到了类似的帖子。 我使用Apache Commons作为建议的解决方案,包括: 并导入从http:

  • 我想知道什么是url编码。我有2个jsp页面和一个servlet。当我运行应用程序时,显示的网址是: 哪里 指数jsp: 单击“提交”按钮后,显示的URL为: URL编码的含义是什么?如何对url进行编码? 从转到然后转到 Myservet#doPost//我需要在这里进行URL编码吗?如果是,怎么做? result.jsp

  • 为了防止SQL注入,OWASP对接收到的字符进行编码。下面是为org.owasp.esapi.codecs.OracleCodec.java类实现的代码 以上对预防SQL注入有什么帮助?请解释一下。

  • 我有一个编码为base64的SVG文件,我想用ImageView显示图像。这是我尝试过的: 但是decodedByte总是返回null。 附注: 此代码适用于jpeg图像。 如果Bas64字符串包含Bas64前缀("data: Image/svg xml; Bas64,"或"data: Image/jpeg; Bas64,),则decdedByte也总是返回null Bas64字符串是正确的(它在

  • 问题内容: 我的编译器类正在创建一种我们打算编译为Java字节码的语言。我们已经取得了很大的进步,并且正在接近代码生成的时间。 我们在查找有关如何从编译器创建.class文件的信息时遇到问题。您有什么资源可以为我们提供帮助吗?我们已经有很多关于指令集的文档,但是需要有关如何直接填写类文件/十六进制编写的信息。 我们不需要有关反编译.class文件的信息或建议。 即使是从头开始编写.class文件的

  • 我四处寻找答案(我肯定他们就在那里),但我不确定这是可能的。 所以,我得到了一个包含“för”这个词的巨大文件。我之所以使用RandomAccessFile,是因为我知道它(某种程度上)在哪里,因此可以使用seek()函数到达那里。 要知道我已经找到了它,我在我的程序中有一个字符串“för”,我检查它是否相等。问题是,我运行了调试器,当我到达“för”时,我要比较的是“för”。 所以我的程序终止