2014-12-07 167 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()