SecretKey (Java Platform SE 8 )
Keywords: javax.crypto.SecretKey interface
Date: 2026-03-16

compact1, compact2, compact3
javax.crypto

## Interface SecretKey

- All Superinterfaces:
    Destroyable, Key, Serializable
  All Known Subinterfaces:
    PBEKey
  All Known Implementing Classes:
    KerberosKey, SecretKeySpec

      public interface SecretKey
      extends Key, Destroyable

  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.)

  Since:
    1.4
  See Also:
    `SecretKeyFactory`, `Cipher`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `serialVersionUID` The class fingerprint that is set to indicate serialization compatibility since J2SE 1.4.

  - ### Method Summary

    - ### Methods inherited from interface java.security.Key

      `getAlgorithm, getEncoded, getFormat`

    - ### Methods inherited from interface javax.security.auth.Destroyable

      `destroy, isDestroyed`

- - ### Field Detail

    - #### serialVersionUID

          static final long serialVersionUID

      The class fingerprint that is set to indicate serialization compatibility since J2SE 1.4.
      See Also:
        Constant Field Values

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.