public class

Encryptors

extends Object
java.lang.Object
   ↳ org.springframework.security.crypto.encrypt.Encryptors

Class Overview

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

Summary

Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

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.

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

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

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