java - 如何让 base64.default 在 Java 中工作?

标签 java eclipse

我不熟悉 Java。

return Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.DEFAULT);

在 DEFAULT 上,我收到“DEFAULT 无法解析或不是字段”

我从一个网站上得到了代码块,上面写着“下面的 Java 代码使用了来自 Android SDK 的 base64 util 类,但你可以像使用来自 Apache Commons 的那样替换它”,我很确定这是问题所在,缺少的实用程序类。

http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Base64.java?view=markup

所以我点击了它并到达那里......O.o

我看到一堵代码墙,没有关于如何处理它的上下文。我需要代码与 C# 代码匹配并给出相同的结果,因此切换到另一种格式不是解决方案。我想我必须实现那个 util 类,但我没有第一条线索实际需要什么。

最佳答案

以下是您对代码墙所做的操作:由于您正在尝试使用 encodeToString,因此您搜索 encodeToString 以查看是否存在具有该名称的方法。这段代码中没有。但是,如果该类具有定义该方法的父类(super class),则该类中可能仍然存在一个。所以你看看这个类是否有父类(super class),它有:

public class Base64 extends BaseNCodec {

所以现在您必须尝试找到BaseNCodec 的代码。没有指向它的超链接,但您可以检查 URL,查找 Base64,然后尝试将 Base64 替换为 BaseNCodec 以查看是否URL 遵循相同的格式。这样可行。那个类确实encodeToString:

/**
 * Encodes a byte[] containing binary data, into a String containing characters in the Base-N alphabet.
 * Uses UTF8 encoding.
 *
 * @param pArray
 *            a byte array containing binary data
 * @return A String containing only Base-N character data
 */
public String encodeToString(final byte[] pArray) {
    return StringUtils.newStringUtf8(encode(pArray));
}

不要担心正文,只看 javadoc 和参数。与 Android 版本不同,只有一个参数。没有“flags”参数,并且由于在 Android 上 flags 参数是默认值,您可以猜测缺少 flags 参数不会成为问题。您应该能够使其仅使用 byte[] 参数。

但是有一个问题:Apache 版本不是 static,这意味着 Base64.encodeToString 将不起作用。您需要 Base64 的实际实例。要弄清楚你想要什么,你需要回到 Base64 代码并查看构造函数;然后查看每个构造函数的 Javadoc,并弄清楚您想要什么。

查看 Android 的 Javadoc 也会有所帮助。从 http://developer.android.com/reference/classes.html 开始,寻找 Base64 类。您可以在那里找到 encodeToString 方法。这需要一个 flags 参数,虽然该方法没有详细说明标志的含义,但您可以向上滚动并查看有哪些不同的标志可供您使用。一个是 URL_SAFE。由于说明告诉您使用 DEFAULT,这意味着它们希望您使用 URL_SAFE 选项。这很重要,因为 Apache 版本中的一些构造函数为您提供了是否使用 URL 安全编码的选项;不要,除非您认为上述网站是错误的。

我不知道您需要编写什么确切的代码。但这应该可以帮助您入门,并让您了解将来如何自己研究此类问题。

关于java - 如何让 base64.default 在 Java 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553817/

相关文章:

java - 如何在数据删除时自动刷新ListView

Java 数组移动元素

java - 如何编译我的 Java 源文件

java - Eclipse 打开与可编辑源文件不同的源文件

android - cocos2dx eclipse : Various "error: undefined reference to "

java - 在 Eclipse 上按 'run' 时无法(同时)启动游戏和音乐

Java swing 组件保持大小(静态)

android - 构建发行版时更改常量值

java - Java如何从文本文件中提取数据

java - 打印两次,不提示扫描仪输入