小编Cat*_*Nap的帖子

JCA,它的提供者和JCE之间的关系?

我认为JCA替代JCE很简单.但是,编写一些测试代码以获取我系统上的所有提供程序后显示情况并非如此.

我注意到以下几点:

  1. 一些算法有多个供应商(如:MD5withRSASunRsaSignSunJSSE)
  2. JCA似乎有type超出JCE中的算法

第1项是有道理的,因为JCA(对我来说)作为JCE提供者的库/数组来挑选.

第2项有点令人困惑,因为它表明JCA不是一组"相同的"JCE提供者; 对于任何和所有"类型"的提供者来说,它都是某种水坑,JCE接口与否.

那么,JCA,它的供应商和JCE之间的工作关系是什么?提供者是否也存在于独立的孤岛中,或者它们是否相互"构建"/它们之间是否存在依赖关系?

对于那些对代码感兴趣的人和提出这个问题的结果,下面列出了它


import java.security.Provider;
import java.security.Security;
import java.util.ArrayList;

public class ConsoleListJca 
{
    public static void main(String[] args) 
    {
        for (Provider provider : Security.getProviders()) 
        {
            System.out.println("Provider: " + provider.getName() + " (ver " + provider.getVersion() + ")");
            System.out.print("  Algorithms: ");
            ArrayList<String> algos = new ArrayList<String>();
            for (Provider.Service service : provider.getServices()) 
            {
                algos.add(String.format( "%s (%s)", service.getAlgorithm(), service.getType()));
            }
            java.util.Collections.sort(algos);
            String algorsStr = algos.toString();
            // remove [ …
Run Code Online (Sandbox Code Playgroud)

java cryptography jce jca

7
推荐指数
1
解决办法
2836
查看次数

标签 统计

cryptography ×1

java ×1

jca ×1

jce ×1