Most visited

Recently visited

Added in API level 1

PBEKeySpec

public class PBEKeySpec
extends Object implements KeySpec

java.lang.Object
   ↳ javax.crypto.spec.PBEKeySpec


用户选择的密码,可用于基于密码的加密( PBE )。

密码可以被视为某种原始密钥材料,使用它的加密机制会从中导出加密密钥。

不同的PBE机制可能消耗每个密码字符的不同位。 例如, PKCS #5中定义的PBE机制仅查看每个字符的低8位,而PKCS#12查看每个字符的全部16位。

通过创建适当的密钥工厂实例,将密码字符转换为PBE密钥。 例如,PKCS#5的密钥工厂将仅从每个密码字符的低位8位构造PBE密钥,而PKCS#12的密钥工厂将占用每个字符的全部16位。

还要注意,这个类将密码存储为char数组而不是String对象(这看起来更合理),因为String类是不可变的,并且当不再需要存储在其中的密码时,无法覆盖其内部值。 因此,这个类将密码作为char数组请求,所以它可以在完成时被覆盖。

也可以看看:

Summary

Public constructors

PBEKeySpec(char[] password)

需要密码的构造函数。

PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)

构造函数接受密码,salt,迭代次数和待导出的密钥长度,以生成可变密钥大小的PBE密码的PBEKey。

PBEKeySpec(char[] password, byte[] salt, int iterationCount)

构造函数需要密码,salt和迭代计数来生成固定密钥大小的PBE密码的PBEKey。

Public methods

final void clearPassword()

清除密码的内部副本。

final int getIterationCount()

如果未指定,则返回迭代计数或0。

final int getKeyLength()

返回要导出的密钥长度,如果未指定,则返回0。

final char[] getPassword()

返回密码的副本。

final byte[] getSalt()

返回salt的副本,如果未指定,则返回null。

Inherited methods

From class java.lang.Object

Public constructors

PBEKeySpec

Added in API level 1
PBEKeySpec (char[] password)

需要密码的构造函数。 如果指定了null,则使用空字符[]。

注意: password在被存储在新的 PBEKeySpec对象中之前被克隆。

Parameters
password char: the password.

PBEKeySpec

Added in API level 1
PBEKeySpec (char[] password, 
                byte[] salt, 
                int iterationCount, 
                int keyLength)

构造函数接受密码,salt,迭代次数和待导出的密钥长度,以生成可变密钥大小的PBE密码的PBEKey。 如果为password指定了null,则使用空char []。

注意: passwordsalt在存储到新的 PBEKeySpec对象之前被克隆。

Parameters
password char: the password.
salt byte: the salt.
iterationCount int: the iteration count.
keyLength int: the to-be-derived key length.
Throws
NullPointerException if salt is null.
IllegalArgumentException if salt is empty, i.e. 0-length, iterationCount or keyLength is not positive.

PBEKeySpec

Added in API level 1
PBEKeySpec (char[] password, 
                byte[] salt, 
                int iterationCount)

构造函数需要密码,salt和迭代计数来生成固定密钥大小的PBE密码的PBEKey。 如果为password指定了null,则使用空字符[]。

注意: passwordsalt在被存储在新的 PBEKeySpec对象中之前被克隆。

Parameters
password char: the password.
salt byte: the salt.
iterationCount int: the iteration count.
Throws
NullPointerException if salt is null.
IllegalArgumentException if salt is empty, i.e. 0-length, or iterationCount is not positive.

Public methods

clearPassword

Added in API level 1
void clearPassword ()

清除密码的内部副本。

getIterationCount

Added in API level 1
int getIterationCount ()

如果未指定,则返回迭代计数或0。

Returns
int the iteration count.

getKeyLength

Added in API level 1
int getKeyLength ()

返回要导出的密钥长度,如果未指定,则返回0。

注意:这用于指示可变密钥大小密码的密钥长度偏好。 实际的密钥大小取决于每个提供者的实现。

Returns
int the to-be-derived key length.

getPassword

Added in API level 1
char[] getPassword ()

返回密码的副本。

注意:此方法返回密码的副本。 在不再需要密码信息后,调用者有责任清除密码信息。

Returns
char[] the password.
Throws
IllegalStateException if password has been cleared by calling clearPassword method.

getSalt

Added in API level 1
byte[] getSalt ()

返回salt的副本,如果未指定,则返回null。

注意:这个方法应该返回salt的一个副本。 调用者有责任在盐信息不再需要后将其归零。

Returns
byte[] the salt.

Hooray!