首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Java Base64解码返回不可读的字符

为什么Java Base64解码返回不可读的字符
EN

Stack Overflow用户
提问于 2018-08-03 22:57:52
回答 2查看 1K关注 0票数 -2

我有一个用Base64编码的公钥,我被指示对给定的编码字符串进行解码,以获得需要用于GPG加密的实际公钥。

我所做的是,我使用下面的代码解码给定的字符串以获得实际的公钥,但是当我这样做时,我看到Eclipse控制台上打印了一些无法阅读的字符。

代码语言:javascript
复制
  import org.apache.commons.codec.binary.Base64;
    class Test 
    {
        String encodedPK = "mQGi..../../"; //I mentioned dummy here, due to security reasons
        byte[] decoded = Base64.decodeBase64(encodedPK);
        System.out.println(new String(decoded));
    }
    OUTPUT:- "qÕÍ•È陑™Ì
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-11 04:48:00

答案是,我使用了一个在线Base64解码工具来解码编码的密钥,剩下的事情都很顺利。所以,问题是,我没有正确解码。

票数 0
EN

Stack Overflow用户

发布于 2018-08-03 23:20:42

因为它是一个可以工作的base64解码器。

加密密钥不是由可读字符组成的。它是由任意字节组成的,当尝试这样做时,这些字节可能不会正确显示。这就是为什么任何人都会想象将密钥编码到base64: base64是由文本组成的,可以通过基于文本的通信轻松地交换。

在您将密钥从base64解码到byte[]之后,它就完全解码了。你已经完成了解码它的工作。任何试图使用这样的密钥的人都需要一个byte[],而不是可显示的字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51675354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档