JAVA 利用算法原理判定RSA密钥对是否匹配
注:本文仅局限于RSA密钥的相关内容,其他算法的密钥请自行参考研究。
注:本文基于java1.8 和BC version 1.7(引入依赖包)
注:如果你不知道BC库是什么,那么建议先行百度了解一下。

1、PKCS8标准的私钥转PCKS1标准的私钥字节数组


2、将java.security.PrivateKey转换成org.bouncycastle.asn1.pkcs.RSAPrivateKey对象


3、利用算法原理判定密钥对是否匹配


4、验证一个私钥与一本证书是否匹配
其实就是先从证书中提取公钥(利用证书对象就可以直接get到公钥对象),然后就是和上一环节一样的流程(目前没有找到更便捷的流程)

5、测试


N、补充
1、本文使用代码基于我写的存放于github的公开代码(仓库地址:https://github.com/17lhf/happyTest/tree/master/src/main/java/com/basic/happytest/modules/cryptology),欢迎前去查看是否有遗漏或者bug或者复制下来检验
2、如果你还想了解更多JAVA实现PKI体系相关功能的例子,欢迎阅读这篇文章:JAVA密码学功能实现大集合
3、如果你想了解OpenSSL这个著名的工具如何通过命令行使用,欢迎阅读这篇文章:OpenSSL命令行实例
4、如果你想稍微深入了解JAVA的RSA加解密的知识,则可以阅读我的这一篇文章:JAVA Cipher的RSA加解密浅浅探索 - 哔哩哔哩 (bilibili.com)

如果你觉得本文对你有所收获,请点赞、投币、收藏、转发,让更多人看到这篇文章,谢谢!!!
如果你觉得有哪里不对,也欢迎在评论区留言指教!!!