我有一个用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ÕÍ•È陑™Ì
发布于 2018-08-11 04:48:00
答案是,我使用了一个在线Base64解码工具来解码编码的密钥,剩下的事情都很顺利。所以,问题是,我没有正确解码。
发布于 2018-08-03 23:20:42
因为它是一个可以工作的base64解码器。
加密密钥不是由可读字符组成的。它是由任意字节组成的,当尝试这样做时,这些字节可能不会正确显示。这就是为什么任何人都会想象将密钥编码到base64: base64是由文本组成的,可以通过基于文本的通信轻松地交换。
在您将密钥从base64解码到byte[]之后,它就完全解码了。你已经完成了解码它的工作。任何试图使用这样的密钥的人都需要一个byte[],而不是可显示的字符。
https://stackoverflow.com/questions/51675354
复制相似问题