从Java中的已知参数创建RSA密钥

我正在实施Bing Cashback.为了验证来自Bing的传入请求是否有效,它们提供签名.签名是使用RSA加密的URL的160位SHA-1散列.

Microsoft提供RSA“公钥”,模数和指数,我应该用它来解密哈希.

有没有办法创建解密哈希所需的Java密钥对象?

我可以找到的一切都会自动创建RSA密钥对,因为这是RSA的工作原理.如果可能,我真的很想使用Java对象,因为这显然比手编解决方案更可靠.

他们提供的示例代码是在.NET中,并使用.NET库函数来验证哈希.特别是RSACryptoServiceProvider.VerifyHash()

最佳答案
RSAPublicKeySpec spec = new RSAPublicKeySpec(modulus, exponent);
KeyFactory factory = KeyFactory.getInstance("RSA");
PublicKey pub = factory.generatePublic(spec);
Signature verifier = Signature.getInstance("SHA1withRSA");
verifier.initVerify(pub);
verifier.update(url.getBytes("UTF-8")); // Or whatever interface specifies.
boolean okay = verifier.verify(signature);

转载注明原文:从Java中的已知参数创建RSA密钥 - 代码日志