当前位置: 首页 > 知识库问答 >
问题:

如何将字节数组转换为PrivateKey或PublicKey类型?

柳弘方
2023-03-14

我正在使用RSA算法生成公钥和私钥

final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(ALGORITHM);
keyGen.initialize(1024);
final KeyPair key = keyGen.generateKeyPair();
final PrivateKey privateKey=key.getPrivate();
final PublicKey publickey=key.getPublic();

然后使用Base64编码器对这些密钥进行编码,并将其保存到数据库中。

共有1个答案

鲜于念
2023-03-14

如果在密钥上有一个表示getEncoded()输出的byte[],则可以使用KeyFactory将其转换回PublicKey对象或PrivateKey对象。

byte[] privateKeyBytes;
byte[] publicKeyBytes;
KeyFactory kf = KeyFactory.getInstance("RSA"); // or "EC" or whatever
PrivateKey privateKey = kf.generatePrivate(new PKCS8EncodedKeySpec(privateKeyBytes));
PublicKey publicKey = kf.generatePublic(new X509EncodedKeySpec(publicKeyBytes));
 类似资料:
  • 我有一个非常具体的要求。我有一个java应用程序,在这里我必须将字节数组转换为具有int、String等java类型的消息。消息的结构在c中定义如下- 我在java应用程序中收到的是字节数组。我不知道c应用程序是否使用proto缓冲区或任何其他方式来转换为字节数组。但是,如果我逐个字节地解析数组,我可以得到值。例如- 这一行将返回正确的id值(结构中的第一个属性是int)。 我的问题是——如果我为

  • 问题内容: 我想从数据库中获取图像。为此,我为图像创建了一个字节数组,该数组由字符串传递,现在我想将该字符串转换为图像格式。我正在将该图像分配给Jlabel字段。代码如下: 问题答案:

  • 问题内容: 我正在尝试从字节数组加载jar,而无需将其写入文件(将其加载到内存中)。我做了一个自定义的ClassLoader,但是当我尝试使用它并加载一个类时,它给了我ClassNotFoundException。 类加载器 主要 它可以正确加载我的课程并运行它,但是我一直在遇到随机错误。 问题答案: 这有点骇人听闻,但是他做了他的工作,这段代码基本上创建了一个伪造的url方案(myjarprot

  • 有什么方法可以将byte[]转换为org.springframework.web.multipart.multipartfile??

  • 问题内容: 我正在使用以下方式读取文件: 我在这里发现。可以转换为吗?将转换为会占用更多空间吗? 编辑:我的文件包含数百万个整数,例如, 100000000 200000000 .....(使用普通的int文件写入)。我读到字节缓冲区。现在,我想将其包装到IntBuffer数组中。怎么做 ?我不想将每个字节转换为int。 问题答案: 您已经在注释中说过,您希望输入数组中的四个字节对应于输出数组中的

  • 我得到一个错误读数: