gpt4 book ai didi

java - 在.NET 到 Java/Spring 中实现 RSA 公钥/私钥解密

转载 作者:行者123 更新时间:2023-11-30 02:51:23 25 4
gpt4 key购买 nike

我正在尝试将应用程序从 .NET 移植到 Spring 4 (Java)。如何在 Java 中对之前使用 .NET RSACryptoServiceProvider 加密的密码进行解密?我有 Java 背景。

我有一个来自 .NET 的 privatekey.xml 文件。这是私钥示例代码:

<RSAKeyValue>
<Modulus>dfgkjkdfg99444</Modulus>
<Exponent>ABCD</Exponent>
<P>dadskfkkeej3434j==</P>
<Q>sdakfksa/sdfd/sdf3wfsd==</Q>
<DP>sdERfdsf333==</DP>
<DQ>sdfsd222sdfEWEf==</DQ>
<InverseQ>kadkfimmds+/sdkks+/sdfsdkKKD==</InverseQ>
<D>sdfsadfsadfsadfdsafasdfsadfsadfdsafdsf=</D>
</RSAKeyValue>

问题:

真正的私钥在哪里?我可以用它作为盐来解密加密的文本吗?如何使用这个私钥在Java中编写解密函数? Java 中是否已经有一个函数可以接受这些参数?有例子吗?

我已经阅读了许多有关 RSA 的理论文章。但对于理解这种情况没有帮助。因此,专门用于在 Java 中处理这种情况的示例代码、Java 中的对应示例、有用文章的链接等将非常有帮助。

最佳答案

您已获得一个包含构成私钥的元素的 XML。这些元素采用 Base 64 编码。 Base 64 解码为字节数组。这些字节数组依次代表大或小整数编码数字。所有值共同构成私钥。

显然,您已经更改了这些值本身,因此进一步的操作将相当棘手。

所以基本上您需要执行以下步骤:

  • 解析 XML;
  • 检索编码元素;
  • 将这些元素以 Base 64 解码为字节数组;
  • 将数组转换为 BigInteger
  • 将值放入 RSAPrivateCrtKeySpec
  • 将规范输入到“RSA” KeyFactory中。

由于您还拥有私有(private) D 值,因此您还可以使用 RSAPrivateyKeySpec,但生成的 RSA 操作可能会更慢。

关于java - 在.NET 到 Java/Spring 中实现 RSA 公钥/私钥解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549091/

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