2014-12-07 166 views
0

我试图找到DSA公钥的长度,但找不到方法.length,我确定我有正确的导入,但似乎没有工作。下面的代码片段,是否有一个特殊的功能来找到它?查找公钥的长度

//my imports 
    import java.util.*;  
    import java.io.*;       
    import javax.crypto.*;       
    import javax.crypto.spec.*; 
    import java.security.*; 

public boolean SelObj(int k, PublicKey c) throws java.rmi.RemoteException{ 
    for(int j =1; j<c.bitLength(); ++j) { 
     //some code 
    } 
} 
+0

的RMI标签是完全不相关的这个问题,你左至少出两个相关的标签。 – EJP 2014-12-07 22:35:11

+0

我的歉意我没有注意到 – Student 2014-12-07 22:39:44

+0

接受,但坦率地说,完全怀疑。 '没有注意到'的确。谁说长度是由'.length()'方法返回的?多试一点研究。 – EJP 2014-12-07 22:44:18

回答

1

字节数组编码的比特长度:

c.getEncoded().length * Byte.SIZE 

整数值的比特长度:

import java.security.interfaces.DSAPublicKey 

((DSAPublicKey) c).getY().bitLength()