Класс PBEKeySpec
- Все реализованные интерфейсы:
KeySpec
public class PBEKeySpec extends Object implements KeySpec
Пароль можно рассматривать как некоторый вид необработанного ключевого материала, из которого использующий его механизм шифрования выводит криптографический ключ.
Разные механизмы PBE могут использовать разное количество бит каждого символа пароля. Например, механизм PBE, определённый в PKCS #5, учитывает только младшие 8 бит каждого символа, тогда как PKCS #12 учитывает все 16 бит каждого символа.
Для преобразования символов пароля в ключ PBE создайте экземпляр соответствующей фабрики секретных ключей. Например, фабрика секретных ключей для PKCS #5 создаст ключ PBE, используя только младшие 8 бит каждого символа пароля, тогда как фабрика секретных ключей для PKCS #12 использует все 16 бит каждого символа.
Также обратите внимание, что этот класс хранит пароли в виде массивов char, а не объектов String (что казалось бы более логичным), поскольку класс String неизменяем и невозможно перезаписать его внутреннее значение, когда сохранённый в нём пароль больше не нужен. Поэтому этот класс принимает пароль в виде массива char, который можно перезаписать после использования.
- С момента:
- 1.4
- Внешние спецификации
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PBEKeySpec |
Конструктор, принимающий пароль. |
PBEKeySpec |
Конструктор, принимающий пароль, соль и число итераций для создания PBEKey для PBE-шифров с фиксированным размером ключа. |
PBEKeySpec |
Конструктор, принимающий пароль, соль, число итераций и длину выводимого ключа для создания PBEKey для PBE-шифров с переменным размером ключа. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final void |
clearPassword() |
Очищает внутреннюю копию пароля. |
final int |
getIterationCount() |
Возвращает число итераций или 0, если оно не задано. |
final int |
getKeyLength() |
Возвращает длину выводимого ключа или 0, если она не задана. |
final char[] |
getPassword() |
Возвращает копию пароля. |
final byte[] |
getSalt() |
Возвращает копию соли или null, если она не задана. |
Подробное описание конструкторов
PBEKeySpec
public PBEKeySpec(char[] password)
Примечание: password клонируется перед сохранением в новом объекте PBEKeySpec.
- Параметры:
-
password— пароль.
PBEKeySpec
public PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
password указано значение null, используется пустой char[]. Примечание: password и salt клонируются перед сохранением в новом объекте PBEKeySpec.
- Параметры:
-
password— пароль. -
salt— соль. -
iterationCount— число итераций. -
keyLength— длина выводимого ключа. - Исключения:
-
NullPointerException— еслиsaltравно null. -
IllegalArgumentException— еслиsaltпуст (то есть имеет длину 0),iterationCountилиkeyLengthне является положительным.
PBEKeySpec
public PBEKeySpec(char[] password, byte[] salt, int iterationCount)
password указано значение null, используется пустой char[]. Примечание: password и salt клонируются перед сохранением в новом объекте PBEKeySpec.
- Параметры:
-
password— пароль. -
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()
Примечание: этот метод должен возвращать копию соли. После того как соль больше не нужна, вызывающая сторона должна обнулить содержащие её данные.
- Возвращает:
- соль.
getIterationCount
public final int getIterationCount()
- Возвращает:
- число итераций.
getKeyLength
public final int getKeyLength()
Примечание: это значение используется для указания предпочтительной длины ключа для шифров с переменным размером ключа. Фактический размер ключа зависит от реализации конкретного поставщика.
- Возвращает:
- длину выводимого ключа.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/crypto/spec/PBEKeySpec.html