org.apache.cayenne.conf
Class Rot47PasswordEncoder

java.lang.Object
  extended by org.apache.cayenne.conf.Rot47PasswordEncoder
All Implemented Interfaces:
PasswordEncoding

public class Rot47PasswordEncoder
extends Object
implements PasswordEncoding

The ROT-47 password encoder passes the text of the database password through a simple Caesar cipher to obscure the password text. The ROT-47 cipher is similar to the ROT-13 cipher, but processes numbers and symbols as well. See the Wikipedia entry on ROT13 for more information on this topic.

Since:
3.0

Field Summary
 
Fields inherited from interface org.apache.cayenne.conf.PasswordEncoding
standardEncoders
 
Constructor Summary
Rot47PasswordEncoder()
           
 
Method Summary
 String decodePassword(String encodedPassword, String key)
          Decodes an encoded database password.
 String encodePassword(String normalPassword, String key)
          Encodes a normal/plain database password.
static void main(String[] args)
          Small test program to run text through the ROT-47 cipher.
 String rotate(String value)
          Applies a ROT-47 Caesar cipher to the supplied value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Rot47PasswordEncoder

public Rot47PasswordEncoder()
Method Detail

decodePassword

public String decodePassword(String encodedPassword,
                             String key)
Description copied from interface: PasswordEncoding
Decodes an encoded database password.

Specified by:
decodePassword in interface PasswordEncoding
Parameters:
encodedPassword - - The encoded password to be decoded
key - - An optional data element which can be used to unlock the password. Some encoders may require the key.
Returns:
The decoded normal/plain plassword.

encodePassword

public String encodePassword(String normalPassword,
                             String key)
Description copied from interface: PasswordEncoding
Encodes a normal/plain database password.

Specified by:
encodePassword in interface PasswordEncoding
Parameters:
normalPassword - - The normal/plain password to be encoded
key - - An optional data element which can be used to lock the password. Some encoders may require the key.
Returns:
The encoded password.

rotate

public String rotate(String value)
Applies a ROT-47 Caesar cipher to the supplied value. Each letter in the supplied value is substituted with a new value rotated by 47 places. See ROT13 for more information (there is a subsection for ROT-47).

A Unix command to perform a ROT-47 cipher is:

tr '!-~' 'P-~!-O'

Parameters:
value - The text to be rotated.
Returns:
The rotated text.

main

public static void main(String[] args)
Small test program to run text through the ROT-47 cipher. This program can also be run by hand to encode/decode values manually. The values passed on the command line are printed to standard out.

Parameters:
args - The array of text values (on the command-line) to be run through the ROT-47 cipher.


Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.