Spec-Zone.ru › OpenJDK 27

Класс 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)
Конструктор, принимающий пароль, соль, количество итераций и длину выводимого ключа для создания PBEKey для шифров PBE с переменным размером ключа.

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

Модификатор и тип Метод Описание
final void clearPassword()
Очищает внутреннюю копию пароля.
final int getIterationCount()
Возвращает количество итераций или 0, если оно не задано.
final int getKeyLength()
Возвращает длину выводимого ключа или 0, если она не задана.
final char[] getPassword()
Возвращает копию пароля.
final byte[] getSalt()
Возвращает копию соли или null, если она не задана.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация признана устаревшей и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка времени.

Подробное описание конструкторов

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, если она не задана.

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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