java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

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)

getProviders

public static Provider[] getProviders(Map<String,String> filter)
返回包含可以满足指定的 * 选择标准的所有已安装的提供程序的数组,如果尚未安装此类提供程序,则返回 null。返回的提供程序将根据其 preference order 进行排序。

选择标准将通过映射表示。每个映射项都表示一种选择标准。当且仅当某个提供程序满足所有选择标准时才可选择它。此映射中任何项的密钥都必须使用以下两种格式之一:

  • <crypto_service>.<algorithm_or_type>

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

    与密钥相关的值必须为空字符串。

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

  • <crypto_service>.<algorithm_or_type> <attribute_name>

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

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

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

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

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策