2016-11-07 128 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()); 
    } 
} 
相关问题