我正在使用 Cipher.getInstance(String algorithm)
获取 Cipher 实现。我的印象是,我可能传递的可用算法名称根据类路径中存在的库而有所不同。
我想编写一个简单的程序,可以使用不同的类路径运行,该程序将列出可用的密码算法名称。我需要调用什么方法来获取此列表?
最佳答案
一旦我有了供应商列表(如 JB Nizet 的帖子中所述),我仍然没有算法列表。我发现每个 Provider 都充当一个 Properties 对象,并且 Properties 对算法名称进行编码。我并不完全清楚这是否是查找它们的正确方法,以及所有其他属性的确切含义,但我只是编写了一个例程,将所有属性喷出到 System.out 并查找描述内容的各种字符串我一直在寻找,直到找到为止。
import java.security.*;
for (Provider provider: Security.getProviders()) {
System.out.println(provider.getName());
for (String key: provider.stringPropertyNames())
System.out.println("\t" + key + "\t" + provider.getProperty(key));
}
关于java - 如何列出可用的密码算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61926661/