|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto.spec
类 PBEKeySpec
java.lang.Object javax.crypto.spec.PBEKeySpec
- 所有已实现的接口:
- 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[]。注:在将
password
和salt
存储进新的PBEKeySpec
对象前将其复制。- 参数:
-
password
- 密码。 -
salt
- salt。 -
iterationCount
- 迭代计数。 -
keyLength
- 要导出的密钥长度。 - 抛出:
-
NullPointerException
- 如果salt
为 null。 -
IllegalArgumentException
- 如果salt
为空(即 0 长度)、iterationCount
或keyLength
不为正。
PBEKeySpec
public PBEKeySpec(char[] password, byte[] salt, int iterationCount)
-
带有生成固定密钥大小的 PBE 密码的 PBEKey 时使用的一个密码、salt、迭代数的构造方法。如果指定
password
为 null,则使用一个空 char[]。注:在将
password
和salt
存储进新的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。
注:此方法用于指出可变密钥大小密码的首选密钥长度。实际的密钥大小依赖于每一个提供者的实现。
-
-
- 返回:
- 要导出的密钥长度。