Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/javax/crypto/SecretKey#constants) \| [Inherited Constants](https://developer.android.com/reference/javax/crypto/SecretKey#inhconstants) \| [Inherited Methods](https://developer.android.com/reference/javax/crypto/SecretKey#inhmethods)

# SecretKey


`
public


interface
SecretKey
`


`


implements

https://developer.android.com/reference/javax/security/auth/Destroyable,

https://developer.android.com/reference/java/security/Key


`

|---|
| javax.crypto.SecretKey |

|---|
| Known indirect subclasses [PBEKey](https://developer.android.com/reference/javax/crypto/interfaces/PBEKey), [SecretKeySpec](https://developer.android.com/reference/javax/crypto/spec/SecretKeySpec) |---|---| | [PBEKey](https://developer.android.com/reference/javax/crypto/interfaces/PBEKey) | The interface to a PBE key. | | [SecretKeySpec](https://developer.android.com/reference/javax/crypto/spec/SecretKeySpec) | This class specifies a secret key in a provider-independent fashion. | |

<br />

*** ** * ** ***

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
`https://developer.android.com/reference/java/lang/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
`https://developer.android.com/reference/javax/security/auth/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
`https://developer.android.com/reference/java/io/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 `https://developer.android.com/reference/java/security/Key` parent interface.)
**See also:**

- `https://developer.android.com/reference/javax/crypto/SecretKeyFactory`
- `https://developer.android.com/reference/javax/crypto/Cipher`

## Summary

| ### Constants ||
|---|---|
| `long` | `https://developer.android.com/reference/javax/crypto/SecretKey#serialVersionUID` The class fingerprint that is set to indicate serialization compatibility since J2SE 1.4. |

| ### Inherited constants |
|---|
| From interface `https://developer.android.com/reference/java/security/Key` |---|---| | `long` | `https://developer.android.com/reference/java/security/Key#serialVersionUID` *This constant was deprecated in API level 34. A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.* | |

| ### Inherited methods |
|---|---|
| From interface ` https://developer.android.com/reference/javax/security/auth/Destroyable ` |---|---| | ` default void` | ` https://developer.android.com/reference/javax/security/auth/Destroyable#destroy()() ` Destroy this `Object`. | | ` default boolean` | ` https://developer.android.com/reference/javax/security/auth/Destroyable#isDestroyed()() ` Determine if this `Object` has been destroyed. | ||
| From interface ` https://developer.android.com/reference/java/security/Key ` |---|---| | ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/security/Key#getAlgorithm()() ` Returns the standard algorithm name for this key. | | ` abstract byte[]` | ` https://developer.android.com/reference/java/security/Key#getEncoded()() ` Returns the key in its primary encoding format, or null if this key does not support encoding. | | ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/security/Key#getFormat()() ` Returns the name of the primary encoding format of this key, or null if this key does not support encoding. | ||

## Constants

### serialVersionUID

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final long serialVersionUID
```

The class fingerprint that is set to indicate serialization
compatibility since J2SE 1.4.

<br />

Constant Value:

-4795878709595146952
(0xbd719db928b8f538)