2016-11-07 50 views
0

我已經添加BouncyCastle的一個供應商:是否有一種方法可以獲取Cipher.getInstance所有可能的「算法/模式/填充」字符串列表?

java.security.Security.addProvider(
    org.bouncycastle.jce.provider.BouncyCastleProvider()) 

現在我要檢查出可用於getInstance密碼列表 - 例如:

Cipher.getInstance("AES/CBC/PKCS5Padding", "BC") 

有沒有辦法看到列出所有可用的不同類型的加密算法?

+0

閱讀文檔,但它可能很難找到該信息,尤其是默認值。如果沒有文檔,請不要使用該庫。 – zaph

回答

1

您可以遍歷可用的Security.providers並按類型過濾服務。例如:

for (Provider provider: Security.getProviders()) { 
    System.out.println(provider.getName()); 
    for (Provider.Service s: provider.getServices()){ 
     if (s.getType().equals("Cipher")) 
      System.out.println("\t"+s.getType()+" "+ s.getAlgorithm()); 
    } 
} 
相關問題