JAVA 利用算法原理判定RSA密鑰對是否匹配
注:本文僅局限于RSA密鑰的相關內容,其他算法的密鑰請自行參考研究。
注:本文基于java1.8?和BC version 1.7(引入依賴包)
注:如果你不知道BC庫是什么,那么建議先行百度了解一下。

1、PKCS8標準的私鑰轉PCKS1標準的私鑰字節(jié)數(shù)組


2、將java.security.PrivateKey轉換成org.bouncycastle.asn1.pkcs.RSAPrivateKey對象


3、利用算法原理判定密鑰對是否匹配


4、驗證一個私鑰與一本證書是否匹配
其實就是先從證書中提取公鑰(利用證書對象就可以直接get到公鑰對象),然后就是和上一環(huán)節(jié)一樣的流程(目前沒有找到更便捷的流程)

5、測試


N、補充
1、本文使用代碼基于我寫的存放于github的公開代碼(倉庫地址:https://github.com/17lhf/happyTest/tree/master/src/main/java/com/basic/happytest/modules/cryptology),歡迎前去查看是否有遺漏或者bug或者復制下來檢驗
2、如果你還想了解更多JAVA實現(xiàn)PKI體系相關功能的例子,歡迎閱讀這篇文章:JAVA密碼學功能實現(xiàn)大集合
3、如果你想了解OpenSSL這個著名的工具如何通過命令行使用,歡迎閱讀這篇文章:OpenSSL命令行實例
4、如果你想稍微深入了解JAVA的RSA加解密的知識,則可以閱讀我的這一篇文章:JAVA Cipher的RSA加解密淺淺探索 - 嗶哩嗶哩 (bilibili.com)

如果你覺得本文對你有所收獲,請點贊、投幣、收藏、轉發(fā),讓更多人看到這篇文章,謝謝?。?!
如果你覺得有哪里不對,也歡迎在評論區(qū)留言指教?。?!
標簽: