![](/img/trans.png)
[英]Java RSA decryption with private key gives BadPaddingException
[英]Implement RSA Public / Private key decryption in .NET to Java / Spring
我正在尝试将应用程序从.NET移植到Spring 4(Java)。 如何使用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>
问题/ S:
实际的私钥在哪里? 我可以用它作为解密加密文本的盐吗? 如何使用此私钥在Java中编写解密函数? Java中已经有为此功能接受这些参数了吗? 有什么例子吗?
我已经阅读了很多有关RSA的理论文章。 但是对理解这种情况没有帮助。 因此,专门用于处理Java中这种情况的示例代码,Java中的对应示例,指向有用文章的链接等都将非常有帮助。
您已经有了一个XML,其中包含构成私钥的元素。 这些元素均以base 64编码。 基数64解码为字节数组。 这些字节数组依次代表大或小的整数编码数字。 所有这些值共同构成了私钥。
显然,您已经更改了值本身,因此,要进一步扩展此范围将非常棘手。
因此,基本上,您需要执行以下步骤:
BigInteger
值 RSAPrivateCrtKeySpec
"RSA"
KeyFactory
。 由于您还拥有私有D
值,因此您也可以使用RSAPrivateyKeySpec
但最终的RSA操作可能会更慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.