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

javax.crypto.spec
类 PBEKeySpec

java.lang.Object
  继承者 javax.crypto.spec.PBEKeySpec
所有已实现的接口:
KeySpec

public class PBEKeySpec
extends Object
implements KeySpec

可随同基于密码的加密法 (PBE) 使用的供用户选择的密码。

可以将密码视为某种原始密钥内容,由此加密机制使用其导出一个密钥。

不同的 PBE 机制可能对每一个密码字符使用不同的位数。例如,在 PKCS #5 中定义的 PEB 机制仅仅观注每一个字符的低 8 位,而 PKCS #12 关注每一个字符的全 16 位。

通过创建一个合适的密钥工厂实例来将密码转换成为一个 PBE 密钥。例如,PKCS #5 的密钥工厂仅根据每个密码字符的低 8 位来构造 PBE 密钥,而 PKCS #12 的密钥工厂将使用每个字符的全 16 位。

还要注意,此类以 char 数组而不是 String 对象的形式存储密码(这可能更具逻辑性),因为 String 类是不可变的,当不再需要的存储在其中的密码时没有任何途径来重写其内部值。因此,此类需要以 char 数组作密码,以便在完成后进行重写。

从以下版本开始:
1.4
另请参见:
SecretKeyFactory, PBEParameterSpec

构造方法摘要
PBEKeySpec(char[] password)
          带有一个密码的构造方法。
PBEKeySpec(char[] password, byte[] salt, int iterationCount)
          带有生成固定密钥大小的 PBE 密码的 PBEKey 时使用的一个密码、salt、迭代数的构造方法。
PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
          带有生成可变密钥大小的 PBE 密码的 PBEKey 时使用的一个密码、salt、迭代计数以及导出密钥长度的构造方法。
 
方法摘要
 void clearPassword()
          清空密码的内部副本。
 int getIterationCount()
          返回迭代计数,如果未指定则返回 0。
 int getKeyLength()
          返回要导出的密钥长度,如果未指定则返回 0。
 char[] getPassword()
          返回密码的一份副本。
 byte[] getSalt()
          返回 salt 的一份副本,如果未指定则返回 null。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

PBEKeySpec

public PBEKeySpec(char[] password)
带有一个密码的构造方法。如果指定了 null,则使用一个空 char[]。

注:在将 password 存储进新的 PBEKeySpec 对象前将其复制。

参数:
password - 密码。

PBEKeySpec

public PBEKeySpec(char[] password,
                  byte[] salt,
                  int iterationCount,
                  int keyLength)
带有生成可变密钥大小的 PBE 密码的 PBEKey 时使用的一个密码、salt、迭代计数以及导出密钥长度的构造方法。如果指定 password 为 null,则使用一个空 char[]。

注:在将 passwordsalt 存储进新的 PBEKeySpec 对象前将其复制。

参数:
password - 密码。
salt - salt。
iterationCount - 迭代计数。
keyLength - 要导出的密钥长度。
抛出:
NullPointerException - 如果 salt 为 null。
IllegalArgumentException - 如果 salt 为空(即 0 长度)、iterationCountkeyLength 不为正。

PBEKeySpec

public PBEKeySpec(char[] password,
                  byte[] salt,
                  int iterationCount)
带有生成固定密钥大小的 PBE 密码的 PBEKey 时使用的一个密码、salt、迭代数的构造方法。如果指定 password 为 null,则使用一个空 char[]。

注:在将 passwordsalt 存储进新的 PBEKeySpec 对象前将其复制。

参数:
password - 密码。
salt - salt。
iterationCount - 迭代计数。
抛出:
NullPointerException - 如果 salt 为 null。
IllegalArgumentException - 如果 salt 为空(即 0 长度),或者 iterationCount 不为正。
方法详细信息

clearPassword

public final void clearPassword()
清空密码的内部副本。


getPassword

public final char[] getPassword()
返回密码的一份副本。

注:此方法返回密码的一份副本。调用方负责在不再需要密码后清空密码信息。

返回:
密码。
抛出:
IllegalStateException - 如果密码已通过调用 clearPassword 方法被清除。

getSalt

public final byte[] getSalt()
返回 salt 的一份副本,如果未指定则返回 null。

注:此方法应返回 salt 的一份副本。调用方负责在不再需要 salt 后清空 salt 信息。

返回:
salt。

getIterationCount

public final int getIterationCount()
返回迭代计数,如果未指定则返回 0。

返回:
迭代计数。

getKeyLength

public final int getKeyLength()
返回要导出的密钥长度,如果未指定则返回 0。

注:此方法用于指出可变密钥大小密码的首选密钥长度。实际的密钥大小依赖于每一个提供者的实现。

返回:
要导出的密钥长度。

JavaTM 2 Platform
Standard Ed. 5.0

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

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