我已经看到了许多类似的问题,但对我而言,没有任何效果。我只是想将从服务器检索到的PEM格式的RSA公钥转换为PublicKey
Android中的。谁能指出我正确的方向?
编辑:我已经成功使用以下代码将PEM转换为PublicKey,但是在编码消息后,我得到了意外的输出…
public PublicKey getFromString(String keystr) throws Exception
{
// Remove the first and last lines
String pubKeyPEM = keystr.replace("-----BEGIN PUBLIC KEY-----\n", "");
pubKeyPEM = pubKeyPEM.replace("-----END PUBLIC KEY-----", "");
// Base64 decode the data
byte [] encoded = Base64.decode(pubKeyPEM);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(encoded);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey pubkey = kf.generatePublic(keySpec);
return pubkey;
}
public String RSAEncrypt(final String plain) throws NoSuchAlgorithmException, NoSuchPaddingException,
InvalidKeyException, IllegalBlockSizeException, BadPaddingException, IOException {
if (pubKey!=null) {
cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
encryptedBytes = cipher.doFinal(plain.getBytes());
Log.d("BYTES", new String(encryptedBytes));
return Hex.encodeHexString(encryptedBytes);
}
else
return null;
}
输出如下所示:
b6813f8791d67c0fa82890d005c8ff554b57143b752b34784ad271ec01bfaa9a6a31e7ae08444baef1585a6f78f3f848eecb1706bf7b2868fccefc9d728c30480f3aabc9ac5c3a9b4b3c74c2f7d6f0da235234953ea24b644112e04a2ec619f6bf95306ef30563c4608ec4b53ed7c15736d5f79c7fa1e35f2444beb366ae4c71
当我期望更接近:
JfoSJGo1qELUbpzH8d4QXtafup+J2F9wLxHCop00BQ4YS0cRdRCKDfHpFPZQYjNeyQj00HwHbz+vj8haTPbpdqT94AHAl+VZ+TPAiUw1U5EXLLyy4tzbmfVI7CwvMm26lwB4REzYUZdedha1caxMEfxQ5duB+x4ol9eRZM/savg=
我缺少某些格式或文件类型吗?
要回答我自己的问题…第一个输出为十六进制,第二个输出为base64。只需将return语句更改为 return new String(Base64.encode(encryptedBytes));
,您会很好!
我一直在尝试使用openssl将.crt证书转换为.pem 无法加载证书 1760:错误:0906D06C:PEM例程:PEM_READ_BIO:没有起始行:.\CRYPTO\PEM\PEM_LIB.C:703:需要:受信任的证书 我尝试过访问https://support.ssl.com/knowledgebase/article/view/19/0/der-vs-crt-vs-cer-vs-p
谁能告诉我从文件中提取/转换证书和私钥文件的正确方法/命令吗?我刚读到它们是可以互换的,但不是怎么互换的。
这个问题更通用,而不是针对特定的语言,所以我将解释我的问题以及我在伪代码中尝试的内容。 我正在尝试从JWK集生成PEM公钥。JWK包括“e”(指数)和“n”(模量)变量。我的问题是,在不使用任何库和OpenSSL命令行工具的情况下,将此JWK转换为PEM的确切步骤是什么。 以下是供参考的 JWK: 我的大部分研究来源于节点jwk到pem库(可以在这里找到:https://github.com/Br
我已经购买了SSL证书,并且从供应商那里收到了证书和作为私钥的. pem文件?现在我需要将此. pem密钥转换为bitnami Redmine Apache Web服务器的. key以使其正常工作。 我该怎么做?什么程序或命令来做?就使用Openssl等实现这一点而言,我是个新手。 任何建议将不胜感激! 谢谢你。
如何生成<代码>。pem使用OpenSSL从PFX文件中获取CA证书和客户端证书。
我在Windows7上有OpenSSL x64,这是我从Google代码上的OpenSSL-for Windows下载的。我正试图跑: 但我有个错误。 如何使用OpenSSL从PKCS#12存储中提取PEM中的证书?