Spec-Zone.ru › OpenJDK 17

Класс 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
См. также:
  • 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, если она не задана.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

PBEKeySpec

public PBEKeySpec(char[] password)
Конструктор, принимающий пароль. Используется пустой массив char[], если задано null.

Примечание: password клонируется перед сохранением в новом объекте PBEKeySpec.

Параметры:
password - пароль.

PBEKeySpec

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

Примечание: 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 с фиксированной длиной ключа. Используется пустой массив char[], если для password задано null.

Примечание: 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, 2021, 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/17/docs/api/java.base/javax/crypto/spec/PBEKeySpec.html

Spec-Zone.ru

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