动态获取 MessageDigest 所支持的算法名称

76 阅读1分钟

动态获取 MessageDigest 所支持的算法名称

java.security.Security.getAlgorithms("MessageDigest"); 可获得算法名称的Set<String>集合 , 参数为"MessageDigest",不区分大小写

java.util.Set<String> messageDigest_AlgorithmNames_Set = java.security.Security.getAlgorithms("MessageDigest"); //不区分大小写
java.util.Set<String> messageDigest_AlgorithmNames_Set = java.security.Security.getAlgorithms("messagedigest"); //不区分大小写

示例

public class Try动态获取MessageDigest支持的算法名称列表 {
	
	static Integer numA = 1;
	
	static public void main(String...arguments)throws Exception{
		
		java.util.Set<String> messageDigest_AlgorithmNames_Set = java.security.Security.getAlgorithms("messagedigest");
//		java.util.Set<String> messageDigest_AlgorithmNames_Set = java.security.Security.getAlgorithms("MessageDigest");
		
		System.out.println("MessageDigest的算法种类个数为: "+messageDigest_AlgorithmNames_Set.size() + " , 分别为👇");
		
		messageDigest_AlgorithmNames_Set.forEach(算法名称->{
			System.out.println(numA+++".\t\t"+算法名称);
		});		
	}
}

控制台输出👇 (JDK17)

MessageDigest的算法种类个数为: 13 , 分别为👇
1.		SHA3-512
2.		SHA-1
3.		SHA-384
4.		SHA3-384
5.		SHA-224
6.		SHA-512/256
7.		SHA-256
8.		MD2
9.		SHA-512/224
10.		SHA3-256
11.		SHA-512
12.		MD5
13.		SHA3-224