Spring for Android

org.springframework.security.crypto.encrypt
Class AndroidEncryptors

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

public class AndroidEncryptors
extends java.lang.Object

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

Author:
Keith Donald

Method Summary
static org.springframework.security.crypto.encrypt.TextEncryptor noOpText()
          Creates a text encryptor that performs no encryption.
static org.springframework.security.crypto.encrypt.TextEncryptor queryableText(java.lang.CharSequence password, java.lang.CharSequence salt)
          Creates an encryptor for queryable text strings that uses standard password-based encryption.
static org.springframework.security.crypto.encrypt.BytesEncryptor standard(java.lang.CharSequence password, java.lang.CharSequence salt)
          Creates a standard password-based bytes encryptor using 256 bit AES encryption.
static org.springframework.security.crypto.encrypt.TextEncryptor text(java.lang.CharSequence password, java.lang.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 org.springframework.security.crypto.encrypt.BytesEncryptor standard(java.lang.CharSequence password,
                                                                                  java.lang.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 org.springframework.security.crypto.encrypt.TextEncryptor text(java.lang.CharSequence password,
                                                                             java.lang.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 org.springframework.security.crypto.encrypt.TextEncryptor queryableText(java.lang.CharSequence password,
                                                                                      java.lang.CharSequence salt)
Creates an encryptor for queryable text strings that uses standard password-based encryption. Uses a shared, or constant 16 byte 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 org.springframework.security.crypto.encrypt.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.


Spring for Android