Spec-Zone.ru › OpenJDK 24

Класс PBEKeySpec

java.lang.Object
javax.crypto.spec.PBEKeySpec
Все реализованные интерфейсы:
KeySpec
public class PBEKeySpec extends Object implements KeySpec
Пароль, выбранный пользователем, который может использоваться с шифрованием, основанном на пароле (PBE).

Пароль можно рассматривать как некоторый вид исходного ключа, из которого механизм шифрования, использующий его, вычисляет криптографический ключ.

Разные механизмы PBE могут использовать различные биты каждого символа пароля. Например, механизм PBE, определённый в PKCS #5, рассматривает только младшие 8 битов каждого символа, тогда как PKCS #12 рассматривает все 16 битов каждого символа.

Для преобразования символов пароля в ключ PBE необходимо создать экземпляр соответствующего фабрики ключей. Например, фабрика ключей для PKCS #5 построит ключ PBE, используя только младшие 8 битов каждого символа пароля, тогда как фабрика ключей для PKCS #12 возьмёт все 16 битов каждого символа.

Также обратите внимание, что этот класс хранит пароли в виде массивов char вместо String объектов (что казалось бы более логичным), так как класс String является неизменяемым, и нет способа перезаписать его внутреннее значение, когда пароль, хранящийся в нём, больше не нужен. Поэтому этот класс запрашивает пароль в виде массива char, чтобы он мог быть перезаписан по завершении.

С:
1.4
Внешние спецификации
  • RFC 2898: PKCS #5: Спецификация шифрования, основанного на пароле, версия 2.0
См. также:
  • SecretKeyFactory
  • PBEParameterSpec

Краткое описание конструкторов

Конструктор Описание
PBEKeySpec(char[] password)
Конструктор, принимающий пароль.
PBEKeySpec(char[] password, byte[] salt, int iterationCount)
Конструктор, принимающий пароль, соль, количество итераций для генерации PBEKey для шифров PBE с фиксированной длиной ключа.
PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
Конструктор, принимающий пароль, соль, количество итераций и длину ключа для вывода ключа для шифров PBE с переменной длиной ключа.

Краткое описание методов

Модификатор и тип Метод Описание
final void clearPassword()
Очищает внутреннюю копию пароля.
final int getIterationCount()
Возвращает количество итераций или 0, если не указано.
final int getKeyLength()
Возвращает длину ключа для вывода или 0, если не указано.
final char[] getPassword()
Возвращает копию пароля.
final byte[] getSalt()
Возвращает копию соли или 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)
Конструктор, принимающий пароль, соль, количество итераций и длину генерируемого ключа для генерации PBEKey для шифров PBE с переменной длиной ключа. Если для 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)
Конструктор, принимающий пароль, соль и количество итераций для генерации PBEKey для шифров PBE с фиксированной длиной ключа. Если для 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()
Возвращает копию соли или null, если она не указана.

Примечание: этот метод должен возвращать копию соли. Ответственность за обнуление информации о соли после того, как она больше не нужна, лежит на вызывающей стороне.

Возвращает:
соль.

getIterationCount

public final int getIterationCount()
Возвращает количество итераций или 0, если оно не указано.
Возвращает:
количество итераций.

getKeyLength

public final int getKeyLength()
Возвращает длину генерируемого ключа или 0, если она не указана.

Примечание: это используется для указания предпочтения длины ключа для шифров с переменной длиной ключа. Фактическая длина ключа зависит от реализации каждого поставщика.

Возвращает:
длину генерируемого ключа.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/javax/crypto/spec/PBEKeySpec.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API