public class SecretKeySpec extends Object implements KeySpec, SecretKey
 It can be used to construct a SecretKey from a byte array, without having to go through a
 (provider-based) SecretKeyFactory.
 
This class is only useful for raw secret keys that can be represented as a byte array and have no key parameters associated with them, e.g., DES or Triple DES keys.
SecretKey, 
Serialized Form| Constructor and Description | 
|---|
| SecretKeySpec(byte[] key,
             int offset,
             int len,
             String algorithm)Constructs a secret key from the given byte array, using the first  lenbytes ofkey,
 starting atoffsetinclusive. | 
| SecretKeySpec(byte[] key,
             String algorithm)Constructs a secret key from the given byte array. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | destroy()Destroy this  Object. | 
| boolean | equals(Object obj)Tests for equality between the specified object and this object. | 
| String | getAlgorithm()Returns the name of the algorithm associated with this secret key. | 
| byte[] | getEncoded()Returns the key material of this secret key. | 
| String | getFormat()Returns the name of the encoding format for this secret key. | 
| int | hashCode()Calculates a hash code value for the object. | 
| boolean | isDestroyed()Determine if this  Objecthas been destroyed. | 
public SecretKeySpec(byte[] key,
                     String algorithm)
 This constructor does not check if the given bytes indeed specify a secret key of the specified algorithm. For
 example, if the algorithm is DES, this constructor does not check if key is 8 bytes long, and also
 does not check for weak or semi-weak keys. In order for those checks to be performed, an algorithm-specific
 key specification class should be used.
key - the key material of the secret key. The contents of the array are copied to protect against subsequent
            modification.algorithm - the name of the secret-key algorithm to be associated with the given key material. See Appendix A in
            the  Java Cryptography
            Architecture Reference Guide for information about standard algorithm names.IllegalArgumentException - if algorithm is null or key is null or empty.public SecretKeySpec(byte[] key,
                     int offset,
                     int len,
                     String algorithm)
len bytes of key,
 starting at offset inclusive.
 
 The bytes that constitute the secret key are those between key[offset] and
 key[offset+len-1] inclusive.
 
 This constructor does not check if the given bytes indeed specify a secret key of the specified algorithm. For
 example, if the algorithm is DES, this constructor does not check if key is 8 bytes long, and also
 does not check for weak or semi-weak keys. In order for those checks to be performed, an algorithm-specific key
 specification class must be used.
key - the key material of the secret key. The first len bytes of the array beginning at
            offset inclusive are copied to protect against subsequent modification.offset - the offset in key where the key material starts.len - the length of the key material.algorithm - the name of the secret-key algorithm to be associated with the given key material. See Appendix A in
            the  Java Cryptography
            Architecture Reference Guide for information about standard algorithm names.IllegalArgumentException - if algorithm is null or key is null, empty, or too short, i.e.
                key.length-offset<len.ArrayIndexOutOfBoundsException - is thrown if offset or len index bytes outside the key.public String getAlgorithm()
getAlgorithm in interface Keypublic String getFormat()
public byte[] getEncoded()
getEncoded in interface Keypublic int hashCode()
hashCode in class ObjectObject.equals(java.lang.Object), 
System.identityHashCode(java.lang.Object)public boolean equals(@Nullable Object obj)
equals in class Objectobj - the object to test for equality with this object.obj is null or otherwise.Object.hashCode(), 
HashMappublic void destroy()
             throws DestroyFailedException
DestroyableObject.
 
 Sensitive information associated with this Object is destroyed or cleared. Subsequent calls to certain
 methods on this Object will result in an IllegalStateException being thrown.
 
 The default implementation throws DestroyFailedException.
destroy in interface DestroyableDestroyFailedException - if the destroy operation fails.
                public boolean isDestroyed()
DestroyableObject has been destroyed.
 The default implementation returns false.
isDestroyed in interface DestroyableObject has been destroyed, false otherwise.