有没有办法获得所有可能的'算法/模式/填充' Cipher.getInstance的字符串?

时间:2016-11-07 03:23:04

标签: java security bouncycastle

我已将BouncyCastle添加为提供商:

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

现在,我想查看可用于getInstance的密码列表 - 例如:

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

有没有办法看清所有可用的不同类型的加密算法?

1 个答案:

答案 0 :(得分: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());
    }
}