Provider 的 getService() 方法在 Java 中


可以透過使用 java.security.Provider 類中的 getService() 方法來獲取可以透過演算法來描述特定 Provider 實現的服務。此方法需要兩個引數,即必需的服務型別和必需服務演算法名稱。

下面給出一個簡單的示例 −

示例

 即時示例

import java.security.*;
import java.util.*;
public class Demo {
   public static void main(String[] argv) throws Exception {
      try {
         Signature sign = Signature.getInstance("SHA256withDSA");
         Provider p = sign.getProvider();
         Provider.Service s = p.getService("Signature", sign.getAlgorithm());
         System.out.println("The Service for the Provider is: " + s);
      } catch (NoSuchAlgorithmException e) {
         System.out.println("Error!!! NoSuchAlgorithmException");
      }
   }
}

輸出

The Service for the Provider is: SUN: Signature.SHA256withDSA -> sun.security.provider.DSA$SHA256withDSA
aliases: [OID.2.16.840.1.101.3.4.3.2, 2.16.840.1.101.3.4.3.2]
attributes: {KeySize=2048, SupportedKeyClasses=java.security.interfaces.DSAPublicKey|java.security.interfaces.DSAPrivateKey}

下面讓我們瞭解一下上述程式。

getService() 方法用來獲取可以透過演算法來描述特定 Provider 實現的服務。然後,顯示此服務。如果演算法名稱錯誤,則會丟擲 NoSuchAlgorithmException 異常。下面給出一個演示程式碼段 −

try {
   Signature sign = Signature.getInstance("SHA256withDSA");
   Provider p = sign.getProvider();
   Provider.Service s = p.getService("Signature", sign.getAlgorithm());
   System.out.println("The Service for the Provider is: " + s);
} catch (NoSuchAlgorithmException e) {
   System.out.println("Error!!! NoSuchAlgorithmException");
}

更新於: 30-Jul-2019

262 次瀏覽量

開啟您的 職業生涯

透過完成本課程獲取認證

開始學習
廣告