gpt4 book ai didi

java - Android 保存 RSA 私钥和公钥

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:11 24 4
gpt4 key购买 nike

我需要保存我的 RSA 私钥和公钥。我在这里创建它。

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp = kpg.genKeyPair();
publicKey = kp.getPublic();
privateKey = kp.getPrivate();

现在我想下次使用这两个键。因此它们应该存储在设备上。

        byte[] publicKeyBytes = publicKey.getEncoded();
byte[] privateKeyBytes = privateKey.getEncoded();

这样我就可以获取字节数组,然后将它们保存为文本文件。然后下次我读取它并将其转换回字节数组。

现在我的问题:如何将字节数组转换回键?

这实际上不起作用:

    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyBytes);
publicKey = keyFactory.generatePublic(spec);
spec = new X509EncodedKeySpec(privateKeyBytes);
privateKey = keyFactory.generatePrivate(spec);

在 LogCat 上,将显示以下内容:

Must use RSAPublicKeySpec or PKCS8EncodedKeySpec; was java.security.spec.X509EncodedKeySpec

这段代码有什么问题吗?

感谢您的帮助。

最佳答案

尝试使用 PKCS8EncodedKeySpec 作为私钥。

RSAPublicKeySpec 用于公钥,而不是 X509EncodedKeySpec 用于两者。

另请注意,将 key 保存到文本文件可能不是最安全的想法。 Android提供了一个不错的KeyStore Api ,易于使用。

关于java - Android 保存 RSA 私钥和公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com