Spec-Zone.ru › OpenJDK 25

Класс 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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/crypto/spec/PBEKeySpec.html

Spec-Zone.ru

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