我有一个用Base64编码的公钥,并且已指示我解码给定的编码字符串以获取需要用于GPG加密的实际公钥。
我正在做的是,我使用下面的代码解码给定的字符串以获取实际的公钥,但是当我这样做时,我看到在Eclipse控制台上打印了一些不可读的字符。
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ÕÍ•È陑™Ì
答案 0 :(得分:1)
因为它是可以正常工作的base64解码器。
密码密钥不是由可读字符组成的。它由任意字节组成,这些字节在尝试执行时可能无法正确显示。这就是为什么任何人甚至都可以想象对base64的密钥进行编码的原因:base64是由文本制成的,并且可以通过基于文本的通信轻松进行交换。
将密钥从base64解码为byte []后,它会被完全解码。您已经完成了解码工作。任何尝试使用此类密钥的操作都将要求一个byte [],而不是可显示的字符。
答案 1 :(得分:0)
答案是,我使用了一个在线Base64解码器工具来对编码的密钥进行解码,并使其余部分工作顺利。因此,问题是我没有正确解码。