org.springframework.security.crypto.encrypt
Class Encryptors

java.lang.Object
  extended by org.springframework.security.crypto.encrypt.Encryptors

public class Encryptors
extends Object

Factory for commonly used encryptors. Defines the public API for constructing BytesEncryptor and TextEncryptor implementations.


Method Summary
static TextEncryptor noOpText()
          Creates a text encryptor that performs no encryption.
static TextEncryptor queryableText(CharSequence password, CharSequence salt)
          Creates an encryptor for queryable text strings that uses standard password-based encryption.
static BytesEncryptor standard(CharSequence password, CharSequence salt)
          Creates a standard password-based bytes encryptor using 256 bit AES encryption.
static TextEncryptor text(CharSequence password, CharSequence salt)
          Creates a text encryptor that uses standard password-based encryption.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

standard

public static BytesEncryptor standard(CharSequence password,
                                      CharSequence salt)
Creates a standard password-based bytes encryptor using 256 bit AES encryption. Derives the secret key using PKCS #5's PBKDF2 (Password-Based Key Derivation Function #2). Salts the password to prevent dictionary attacks against the key. The provided salt is expected to be hex-encoded; it should be random and at least 8 bytes in length. Also applies a random 16 byte initialization vector to ensure each encrypted message will be unique. Requires Java 6.

Parameters:
password - the password used to generate the encryptor's secret key; should not be shared
salt - a hex-encoded, random, site-global salt value to use to generate the key

text

public static TextEncryptor text(CharSequence password,
                                 CharSequence salt)
Creates a text encryptor that uses standard password-based encryption. Encrypted text is hex-encoded.

Parameters:
password - the password used to generate the encryptor's secret key; should not be shared

queryableText

public static TextEncryptor queryableText(CharSequence password,
                                          CharSequence salt)
Creates an encryptor for queryable text strings that uses standard password-based encryption. Uses a 16-byte all-zero initialization vector so encrypting the same data results in the same encryption result. This is done to allow encrypted data to be queried against. Encrypted text is hex-encoded.

Parameters:
password - the password used to generate the encryptor's secret key; should not be shared
salt - a hex-encoded, random, site-global salt value to use to generate the secret key

noOpText

public static TextEncryptor noOpText()
Creates a text encryptor that performs no encryption. Useful for developer testing environments where working with plain text strings is desired for simplicity.