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