【问题标题】:Converting KeyPair to RSAKey将密钥对转换为 RSAKey
【发布时间】:2013-03-05 08:23:05
【问题描述】:

我正在尝试找出KeyPair 的位长。在四处寻找有关如何执行此操作的解决方案时,我遇到了以下代码 sn-p。

public boolean checkKey(RSAKey key) {
    if ( key.getModulus().bitLength() == 1024 )
        return true;
    return false;
}

我期待的输入是“KeyPair”。有人可以指出我的文档吗:-

  1. 演示如何将 KeyPair 转换为 RSAKey
  2. 或演示如何计算密钥对的位长

【问题讨论】:

    标签: java cryptography rsa bouncycastle jce


    【解决方案1】:

    这应该对 RSA 密钥执行(假设 keyPairKeyPair 实例):

    PublicKey publicKey = keyPair.getPublic();
    
    if (publicKey instanceof RSAPublicKey) {
      return ((RSAPublicKey) publicKey).getModulus().bitLength();
    }
    

    如果您需要检查其他键类型,只需检查相应的文档和代码,例如:

    if (publicKey instanceof DSAPublicKey) {
      return ((DSAPublicKey) publicKey).getY().bitLength();
    }
    

    【讨论】:

    • 我似乎收到一条错误消息,指出“不可转换的类型”
    • 第一行出现“不兼容的条件操作数类型 KeyPair 和 RSAPublicKey”,第二行出现“无法从 KeyPair 转换为公钥”。
    • @uki 我已经测试了代码的工作原理,所以你实现它的方式肯定有错误。请编辑您的问题,向我展示您是如何尝试使用我的代码示例的。
    猜你喜欢
    • 2018-07-16
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2017-09-07
    • 2020-07-05
    相关资源
    最近更新 更多