所有类


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 引擎类(在 Java 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 引擎类(在 Java 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)相关。

选择标准必须用以下两种格式之一指定:

  • <crypto_service>.<algorithm_or_type>

    加密服务名不能包含任何圆点。

    当且仅当提供程序为指定的加密服务实现了指定的算法或类型时,该提供程序才可以满足指定的选择标准。

    例如,任何为 X.509 证书提供 CertificateFactory 实现的提供程序都可以满足 "CertificateFactory.X.509" 的要求。

  • <crypto_service>.<algorithm_or_type> <attribute_name>:< attribute_value>

    加密服务名不能包含任何圆点。在 <algorithm_or_type><attribute_name> 之间必须有一个或多个空格字符。

    当且仅当某个提供程序为指定的加密服务实现了指定的算法或类型,并且其实现可以满足由指定的属性名称/值对表达的限制要求时,该提供程序才可以满足此选择标准。

    例如,任何实施了 SHA1withDSA 签名算法、keysize 为 1024(或更大)的提供程序都可以满足 "Signature.SHA1withDSA KeySize:1024" 的需要。

有关标准加密服务名称、标准算法名称和标准属性名称的信息,请参阅《Java Cryptogaphy Architecture API Specification & Reference 》中的附录 A。

参数:
filter - 选择提供程序的标准。过滤器是区分大小写的。
返回:
可满足选择标准的所有已安装的提供程序,如果尚未安装此类提供程序,则返回 null。
抛出:
InvalidParameterException - 如果过滤器不是需要的格式
NullPointerException - 如果过滤器为 null
另请参见:
getProviders(java.util.Map)

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部