我想创建一个简单的java代码,显示所有安全提供程序:
- 名字
- 信息
- 服务类型
- 算法
主要活动.java
import java.io.ObjectInputStream.GetField;
import java.security.Provider;
import java.security.Provider.Service;
import java.security.Security;
public class MainActivity {
public static void main(String[] args) {
System.out.println("Availble Providers are:");
Provider[] providerList = Security.getProviders();
for (int i = 0; i < providerList.length; i++) {
System.out.println("[" + (i + 1) + "] - Name: "
+ providerList[i].getName());
System.out.println("Information:n" + providerList[i].getInfo());
System.out
.print("Here are all providers with types of service and algorithm provided:n");
}
for (int i = 0; i < serviceList.length; i++) {
System.out.println("- Name: " + providerList[i].getName() + "n");
System.out.print("Service Type: " + serviceList[i].getType()
+ "Algorithm: " + serviceList[i].getAlgorithm());
}
}
}
在第二个 for 循环之前,我需要初始化服务以便能够调用服务类型和算法。
您需要
第二个循环位于第一个循环内,因为您需要当前提供程序,以便可以调用其getServices
方法。像这样:
import java.security.Provider;
import java.security.Provider.Service;
import java.security.Security;
import java.util.Set;
public class MainActivity
{
public static void main(String[] args)
{
Provider [] providerList = Security.getProviders();
for (Provider provider : providerList)
{
System.out.println("Name: " + provider.getName());
System.out.println("Information:n" + provider.getInfo());
Set<Service> serviceList = provider.getServices();
for (Service service : serviceList)
{
System.out.println("Service Type: " + service.getType() + " Algorithm " + service.getAlgorithm());
}
}
}
}