Класс SecretKeySpec
- java.lang.Object
-
- javax.crypto.spec.SecretKeySpec
- Все реализованные интерфейсы:
- Serializable, Key, KeySpec, SecretKey, Destroyable
public class SecretKeySpec extends Object implements KeySpec, SecretKey
Этот класс определяет секретный ключ независимо от поставщика.
Он может использоваться для создания SecretKey из массива байтов без необходимости прохождения через (зависимый от поставщика) SecretKeyFactory.
Этот класс полезен только для сырых секретных ключей, которые могут быть представлены как массив байтов и не имеют связанных с ними параметров ключа, например, ключи DES или Triple DES.
- С:
- 1.4
- См. также:
-
SecretKey,SecretKeyFactory, Формат сериализации
Конструкторы
| Конструктор и описание |
|---|
SecretKeySpec(byte[] key,
int offset,
int len,
String algorithm) Создаёт секретный ключ из заданного массива байтов, используя первые |
SecretKeySpec(byte[] key,
String algorithm) Создаёт секретный ключ из заданного массива байтов. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
equals(Object obj) Проверяет равенство заданного объекта и этого объекта. |
String |
getAlgorithm() Возвращает имя алгоритма, связанного с этим секретным ключом. |
byte[] |
getEncoded() Возвращает материал ключа этого секретного ключа. |
String |
getFormat() Возвращает имя формата кодирования для этого секретного ключа. |
int |
hashCode() Вычисляет значение хэш-кода для объекта. |
Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait Методы, унаследованные от интерфейса javax.security.auth.Destroyable
destroy, isDestroyed Конструкторы
SecretKeySpec
public SecretKeySpec(byte[] key,
String algorithm) Создаёт секретный ключ из заданного массива байтов.
Этот конструктор не проверяет, действительно ли заданные байты представляют секретный ключ указанного алгоритма. Например, если алгоритм — DES, этот конструктор не проверяет, что key имеет длину 8 байт, а также не проверяет слабые или полуслабые ключи. Для выполнения этих проверок должен использоваться класс спецификации ключа, специфичный для алгоритма (в данном случае: DESKeySpec).
- Параметры:
-
key- материал ключа секретного ключа. Содержимое массива копируется для защиты от последующего изменения. -
algorithm- имя алгоритма секретного ключа, который должен быть связан с заданным материалом ключа. См. Приложение А в руководстве Java Cryptography Architecture Reference Guide для получения информации об именах стандартных алгоритмов. - Исключения:
-
IllegalArgumentException- еслиalgorithmnull илиkeynull или пусто.
SecretKeySpec
public SecretKeySpec(byte[] key,
int offset,
int len,
String algorithm) Создаёт секретный ключ из заданного массива байтов, используя первые len байты key, начиная с offset включительно.
Байты, составляющие секретный ключ, находятся между key[offset] и key[offset+len-1] включительно.
Этот конструктор не проверяет, действительно ли заданные байты представляют секретный ключ указанного алгоритма. Например, если алгоритм — DES, этот конструктор не проверяет, что key имеет длину 8 байт, а также не проверяет слабые или полуслабые ключи. Для выполнения этих проверок должен использоваться класс спецификации ключа, специфичный для алгоритма (в данном случае: DESKeySpec).
- Параметры:
-
key- материал ключа секретного ключа. Первыеlenбайты массива, начиная сoffsetвключительно, копируются для защиты от последующего изменения. -
offset- смещение вkey, где начинается материал ключа. -
len- длина материала ключа. -
algorithm- имя алгоритма секретного ключа, который должен быть связан с заданным материалом ключа. См. Приложение А в руководстве Java Cryptography Architecture Reference Guide для получения информации об именах стандартных алгоритмов. - Исключения:
-
IllegalArgumentException- еслиalgorithmnull илиkeynull, пустой или слишком короткий, т. е.key.length-offset<len. -
ArrayIndexOutOfBoundsException- выбрасывается, если индексы байтов вoffsetилиlenвыходят за пределыkey.
Методы
getAlgorithm
public String getAlgorithm()
Возвращает имя алгоритма, связанного с этим секретным ключом.
- Указано в:
-
getAlgorithmв интерфейсеKey - Возвращает:
- алгоритм секретного ключа.
getFormat
public String getFormat()
Возвращает имя формата кодирования для этого секретного ключа.
getEncoded
public byte[] getEncoded()
Возвращает материал ключа этого секретного ключа.
- Указано в:
-
getEncodedв интерфейсеKey - Возвращает:
- материал ключа. Каждый раз при вызове этого метода возвращается новый массив.
hashCode
public int hashCode()
Вычисляет значение хэш-кода для объекта. Объекты, которые равны, также будут иметь одинаковый хэш-код.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
equals
public boolean equals(Object obj)
Проверяет равенство заданного объекта и этого объекта. Два объекта SecretKeySpec считаются равными, если оба являются объектами SecretKey с одинаковым, не зависящим от регистра, именем алгоритма и кодированием ключа.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект для проверки на равенство с этим объектом. - Возвращает:
- true, если объекты считаются равными, false, если
objnull или по другим причинам. - См. также:
-
Object.hashCode(),HashMap
© 1993, 2020, 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.