JavaTM 2 Platform
Standard Ed. 6

java.security
類別 Security

java.lang.Object
  繼承者 java.security.Security

public final class Security
extends Object

此類別集中了所有的安全屬性和常見的安全方法。其主要用途之一是管理提供者。


方法摘要
static int addProvider(Provider provider)
          將提供者添加到下一個可用位置。
static String getAlgorithmProperty(String algName, String propName)
          已過時。 此方法用來返回 "SUN" 密碼服務提供者的主檔案中的專有屬性的值,以便確定如何解析特定於演算法的參數。使用新的基於提供者的、與演算法無關的 AlgorithmParametersKeyFactory 引擎類別(在 J2SE 1.2 版中引入)代替。
static Set<String> getAlgorithms(String serviceName)
          返回字元串 Set,這些字元串包含了指定的 Java 加密服務的所有可用演算法或型別的名稱(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。
static String getProperty(String key)
          獲取安全屬性值。
static Provider getProvider(String name)
          返回使用指定的名稱安裝的提供者(如果有)。
static Provider[] getProviders()
          返回包含所有已安裝的提供者的陣列。
static Provider[] getProviders(Map<String,String> filter)
          返回包含可以滿足指定的 * 選擇標準的所有已安裝的提供者的陣列,如果尚未安裝此類別提供者,則返回 null。
static Provider[] getProviders(String filter)
          返回包含滿足指定的選擇標準的所有已安裝的提供者的陣列,如果尚未安裝此類別提供者,則返回 null。
static int insertProviderAt(Provider provider, int position)
          在指定的位置添加新的提供者。
static void removeProvider(String name)
          移除帶有指定名稱的提供者。
static void setProperty(String key, String datum)
          設置安全屬性值。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法詳細資訊

getAlgorithmProperty

@Deprecated
public static String getAlgorithmProperty(String algName,
                                                     String propName)
已過時。 此方法用來返回 "SUN" 密碼服務提供者的主檔案中的專有屬性的值,以便確定如何解析特定於演算法的參數。使用新的基於提供者的、與演算法無關的 AlgorithmParametersKeyFactory 引擎類別(在 J2SE 1.2 版中引入)代替。

獲取某個演算法的指定屬性。演算法名稱必須是標準名稱。有關標準演算法名稱的資訊,請參見 Java Cryptography Architecture API Specification & Reference 中的附錄 A。一種可能的用法是利用專門的演算法分析程序,這些程序可以將類別映射到它們理解的演算法中(非常類似於 Key 分析程序的做法)。

參數:
algName - 演算法名稱。
propName - 要獲得的屬性名稱。
返回:
指定的屬性值。

insertProviderAt

public static int insertProviderAt(Provider provider,
                                   int position)
在指定的位置添加新的提供者。該位置就是在其中搜尋提供者以尋找請求的演算法的首選順序。該位置從 1 開始,也就是說 1 是首選數,其後是 2,等等。

如果將給定的提供者安裝到了請求的位置,則在該位置使用的提供者和所有位置大於 position 的提供者將向上移動一個位置(向所安裝的提供者列表的尾部移動)。

如果已經安裝了某個提供者,則不能再添加該程序。

首先,如果有安全管理器,則調用帶有字元串 "insertProvider."+provider.getName()checkSecurityAccess 方法可查看是否可以添加新的提供者。如果使用 checkSecurityAccess 的預設實作(即未覆寫此方法),則會導致調用帶有 SecurityPermission("insertProvider."+provider.getName()) 權限的安全管理器的 checkPermission 方法。

參數:
provider - 要添加的提供者。
position - 調用方調用此提供者的首選位置。
返回:
添加提供者的實際首選位置,如果因已安裝了提供者而未添加它,則返回 -1。
拋出:
NullPointerException - 如果提供者為 null
SecurityException - 如果安全管理器已存在,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒絕對新的提供者進行添加存取
另請參見:
getProvider(java.lang.String), removeProvider(java.lang.String), SecurityPermission

addProvider

public static int addProvider(Provider provider)
將提供者添加到下一個可用位置。

首先,如果有安全管理器,則調用帶有字元串 "insertProvider."+provider.getName()checkSecurityAccess 方法可查看是否可以添加新的提供者。如果使用 checkSecurityAccess 的預設實作(即未覆寫此方法),則會導致調用帶有 SecurityPermission("insertProvider."+provider.getName()) 權限的安全管理器的 checkPermission 方法。

參數:
provider - 要添加的提供者。
返回:
添加提供者的首選位置,如果因已安裝了提供者而未添加它,則返回 -1。
拋出:
NullPointerException - 如果提供者為 null
SecurityException - 如果安全管理器已存在,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒絕對新的提供者進行添加存取
另請參見:
getProvider(java.lang.String), removeProvider(java.lang.String), SecurityPermission

removeProvider

public static void removeProvider(String name)
移除帶有指定名稱的提供者。

當移除指定的提供者時,所有位置大於指定提供者所在位置的提供者都將向下移動一個位置(向已安裝的提供者列表的頭部移動)。

此方法預設返回是否未安裝提供者或者名稱是否為 null。

首先,如果有安全管理器,則調用帶有字元串 "removeProvider."+namecheckSecurityAccess 方法可查看是否可以移除該提供者。如果使用 checkSecurityAccess 的預設實作(即未覆寫此方法),則會導致調用帶有 SecurityPermission("removeProvider."+name) 權限的安全管理器的 checkPermission 方法。

參數:
name - 要移除的提供者的名稱。
拋出:
SecurityException - 如果有安全管理器,且其 SecurityManager.checkSecurityAccess(java.lang.String) 方法拒絕對該提供者進行移除存取
另請參見:
getProvider(java.lang.String), addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders()
返回包含所有已安裝的提供者的陣列。陣列中提供者的順序是其首選順序。

返回:
所有已安裝的提供者的陣列。

getProvider

public static Provider getProvider(String name)
返回使用指定的名稱安裝的提供者(如果有)。如果未安裝帶有指定名稱的提供者,或者名稱為 null,則將返回 null。

參數:
name - 要獲取的提供者的名稱。
返回:
指定名稱的提供者。
另請參見:
removeProvider(java.lang.String), addProvider(java.security.Provider)

getProviders

public static Provider[] getProviders(String filter)
返回包含滿足指定的選擇標準的所有已安裝的提供者的陣列,如果尚未安裝此類別提供者,則返回 null。返回的提供者將根據其首選順序進行排序。

加密服務始終與特定的演算法或型別相關。例如,數位簽章服務始終與特定演算法(如 DSA)相關,CertificateFactory 服務始終與特定的證書型別(如 X.509)相關。

選擇標準必須用以下兩種格式之一指定:

有關標準加密服務名稱、標準演算法名稱和標準屬性名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。

參數:
filter - 選擇提供者的標準。過濾器是區分大小寫的。
返回:
可滿足選擇標準的所有已安裝的提供者,如果尚未安裝此類別提供者,則返回 null。
拋出:
InvalidParameterException - 如果過濾器不是需要的格式
NullPointerException - 如果過濾器為 null
從以下版本開始:
1.3
另請參見:
getProviders(java.util.Map)

getProviders

public static Provider[] getProviders(Map<String,String> filter)
返回包含可以滿足指定的 * 選擇標準的所有已安裝的提供者的陣列,如果尚未安裝此類別提供者,則返回 null。返回的提供者將根據其 preference order 進行排序。

選擇標準將通過映射表示。每個映射項都表示一種選擇標準。當且僅當某個提供者滿足所有選擇標準時才可選擇它。此映射中任何項的密鑰都必須使用以下兩種格式之一:

有關標準加密服務名稱、標準演算法名稱和標準屬性名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。

參數:
filter - 選擇提供者的標準。過濾器是區分大小寫的。
返回:
所有可滿足選擇標準的已安裝的提供者,如果尚未安裝此類別提供者,則返回 null。
拋出:
InvalidParameterException - 如果過濾器不是需要的格式
NullPointerException - 如果過濾器為 null
從以下版本開始:
1.3
另請參見:
getProviders(java.lang.String)

getProperty

public static String getProperty(String key)
獲取安全屬性值。

首先,如果有安全管理器,將調用帶有 java.security.SecurityPermission("getProperty."+key) 權限的 checkPermission 方法,以查看是否可以獲取指定的安全屬性值。

參數:
key - 要獲取的屬性的密鑰。
返回:
與密鑰對應的安全屬性的值。
拋出:
SecurityException - 如果有安全管理器,並且其 SecurityManager.checkPermission(java.security.Permission) 方法拒絕對指定的安全屬性值進行獲取存取
NullPointerException - 如果密鑰為 null
另請參見:
setProperty(java.lang.String, java.lang.String), SecurityPermission

setProperty

public static void setProperty(String key,
                               String datum)
設置安全屬性值。

首先,如果有安全管理器,將調用其帶有 java.security.SecurityPermission("setProperty."+key) 權限的 checkPermission 方法,以查看是否可以設置指定的安全屬性值。

參數:
key - 要設置的屬性的名稱。
datum - 要設置的屬性的值。
拋出:
SecurityException - 如果有安全管理器並且其 SecurityManager.checkPermission(java.security.Permission) 方法拒絕對指定的安全屬性值進行設置存取
NullPointerException - 如果密鑰或資料為 null
另請參見:
getProperty(java.lang.String), SecurityPermission

getAlgorithms

public static Set<String> getAlgorithms(String serviceName)
返回字元串 Set,這些字元串包含了指定的 Java 加密服務的所有可用演算法或型別的名稱(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。如果沒有支持指定服務的提供者,或者 serviceName 為 null,則返回一個空 Set。有關 Java 加密服務的完整列表,請參閱 Java Cryptography Architecture API Specification & Reference。註:返回的 set 是不可改變的。

參數:
serviceName - Java 加密服務的名稱(例如,Signature、MessageDigest、Cipher、Mac、KeyStore)。註:此參數是區分大小寫的。
返回:
字元串的 Set,這些字元串包含用於指定的 Java 加密服務的所有可用演算法或型別,如果沒有支持指定服務的提供者,則返回一個空 set。
從以下版本開始:
1.4

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only