SecretKey
Stay organized with collections
Save and categorize content based on your preferences.
Known Indirect Subclasses
PBEKey |
The interface to a PBE key. |
SecretKeySpec |
This class specifies a secret key in a provider-independent fashion. |
|
A secret (symmetric) key.
The purpose of this interface is to group (and provide type safety
for) all secret key interfaces.
Provider implementations of this interface must overwrite the
equals
and hashCode
methods inherited from
Object
, so that secret keys are compared based on
their underlying key material and not based on reference.
Implementations should override the default destroy
and
isDestroyed
methods from the
Destroyable
interface to enable
sensitive key information to be destroyed, cleared, or in the case
where such information is immutable, unreferenced.
Finally, since SecretKey
is Serializable
, implementations
should also override
ObjectOutputStream.writeObject(java.lang.Object)
to prevent keys that have been destroyed from being serialized.
Keys that implement this interface return the string RAW
as their encoding format (see getFormat
), and return the
raw key bytes as the result of a getEncoded
method call. (The
getFormat
and getEncoded
methods are inherited
from the Key
parent interface.)
Constant Summary
long |
serialVersionUID |
The class fingerprint that is set to indicate serialization
compatibility since J2SE 1.4. |
Inherited Constant Summary
From interface
java.security.Key
long |
serialVersionUID |
The class fingerprint that is set to indicate
serialization compatibility with a previous
version of the class. |
Inherited Method Summary
From interface
java.security.Key
abstract
String
|
getAlgorithm()
Returns the standard algorithm name for this key.
|
abstract
byte[]
|
getEncoded()
Returns the key in its primary encoding format, or null
if this key does not support encoding.
|
abstract
String
|
getFormat()
Returns the name of the primary encoding format of this key,
or null if this key does not support encoding.
|
Constants
public
static
final
long
serialVersionUID
The class fingerprint that is set to indicate serialization
compatibility since J2SE 1.4.
Constant Value:
-4795878709595146952
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-10 UTC."],[[["\u003cp\u003e\u003ccode\u003eSecretKey\u003c/code\u003e is a Java interface that represents a secret (symmetric) key used in cryptography, providing type safety for all secret key interfaces.\u003c/p\u003e\n"],["\u003cp\u003eImplementations must override \u003ccode\u003eequals\u003c/code\u003e, \u003ccode\u003ehashCode\u003c/code\u003e, \u003ccode\u003edestroy\u003c/code\u003e, \u003ccode\u003eisDestroyed\u003c/code\u003e, and \u003ccode\u003ewriteObject\u003c/code\u003e for security and serialization purposes.\u003c/p\u003e\n"],["\u003cp\u003eEncoded \u003ccode\u003eSecretKey\u003c/code\u003e objects are represented in the \u003ccode\u003eRAW\u003c/code\u003e format, containing the raw key bytes.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eSecretKey\u003c/code\u003e is closely related to \u003ccode\u003eSecretKeyFactory\u003c/code\u003e for generating keys and \u003ccode\u003eCipher\u003c/code\u003e for performing encryption and decryption.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePBEKey\u003c/code\u003e and \u003ccode\u003eSecretKeySpec\u003c/code\u003e are notable subclasses of \u003ccode\u003eSecretKey\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# SecretKey\n\npublic interface **SecretKey** implements [Key](../../../reference/java/security/Key.html) [Destroyable](../../../reference/javax/security/auth/Destroyable.html) \n\n|---|---|---|\n| Known Indirect Subclasses [PBEKey](../../../reference/javax/crypto/interfaces/PBEKey.html), [SecretKeySpec](../../../reference/javax/crypto/spec/SecretKeySpec.html) |--------------------------------------------------------------------------|----------------------------------------------------------------------| | [PBEKey](../../../reference/javax/crypto/interfaces/PBEKey.html) | The interface to a PBE key. | | [SecretKeySpec](../../../reference/javax/crypto/spec/SecretKeySpec.html) | This class specifies a secret key in a provider-independent fashion. | |||\n\nA secret (symmetric) key.\nThe purpose of this interface is to group (and provide type safety\nfor) all secret key interfaces.\n\n\nProvider implementations of this interface must overwrite the\n`equals` and `hashCode` methods inherited from\n[Object](../../../reference/java/lang/Object.html), so that secret keys are compared based on\ntheir underlying key material and not based on reference.\nImplementations should override the default `destroy` and\n`isDestroyed` methods from the\n[Destroyable](../../../reference/javax/security/auth/Destroyable.html) interface to enable\nsensitive key information to be destroyed, cleared, or in the case\nwhere such information is immutable, unreferenced.\nFinally, since `SecretKey` is `Serializable`, implementations\nshould also override\n[ObjectOutputStream.writeObject(java.lang.Object)](../../../reference/java/io/ObjectOutputStream.html#writeObject(java.lang.Object))\nto prevent keys that have been destroyed from being serialized.\n\nKeys that implement this interface return the string `RAW`\nas their encoding format (see `getFormat`), and return the\nraw key bytes as the result of a `getEncoded` method call. (The\n`getFormat` and `getEncoded` methods are inherited\nfrom the [Key](../../../reference/java/security/Key.html) parent interface.) \n\n##### See Also\n\n- [SecretKeyFactory](../../../reference/javax/crypto/SecretKeyFactory.html)\n- [Cipher](../../../reference/javax/crypto/Cipher.html) \n\n### Constant Summary\n\n|------|-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|\n| long | [serialVersionUID](../../../reference/javax/crypto/SecretKey.html#serialVersionUID) | The class fingerprint that is set to indicate serialization compatibility since J2SE 1.4. |\n\n### Inherited Constant Summary\n\nFrom interface [java.security.Key](../../../reference/java/security/Key.html) \n\n|------|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|\n| long | [serialVersionUID](../../../reference/java/security/Key.html#serialVersionUID) | The class fingerprint that is set to indicate serialization compatibility with a previous version of the class. |\n\n### Inherited Method Summary\n\nFrom interface [java.security.Key](../../../reference/java/security/Key.html) \n\n|-------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| abstract [String](../../../reference/java/lang/String.html) | [getAlgorithm](../../../reference/java/security/Key.html#getAlgorithm())() Returns the standard algorithm name for this key. |\n| abstract byte\\[\\] | [getEncoded](../../../reference/java/security/Key.html#getEncoded())() Returns the key in its primary encoding format, or null if this key does not support encoding. |\n| abstract [String](../../../reference/java/lang/String.html) | [getFormat](../../../reference/java/security/Key.html#getFormat())() Returns the name of the primary encoding format of this key, or null if this key does not support encoding. |\n\nFrom interface [javax.security.auth.Destroyable](../../../reference/javax/security/auth/Destroyable.html) \n\n|---------|---------------------------------------------------------------------------------------------------------------------------------------|\n| void | [destroy](../../../reference/javax/security/auth/Destroyable.html#destroy())() Destroy this `Object`. |\n| boolean | [isDestroyed](../../../reference/javax/security/auth/Destroyable.html#isDestroyed())() Determine if this `Object` has been destroyed. |\n\nConstants\n---------\n\n#### public static final long\n**serialVersionUID**\n\nThe class fingerprint that is set to indicate serialization\ncompatibility since J2SE 1.4. \nConstant Value: -4795878709595146952"]]