Package org.apache.cayenne.configuration
Class Rot47PasswordEncoder
- java.lang.Object
-
- org.apache.cayenne.configuration.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.configuration.PasswordEncoding
standardEncoders
-
-
Constructor Summary
Constructors Constructor Description Rot47PasswordEncoder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringdecodePassword(String encodedPassword, String key)Decodes an encoded database password.StringencodePassword(String normalPassword, String key)Encodes a normal/plain database password.Stringrotate(String value)Applies a ROT-47 Caesar cipher to the supplied value.
-
-
-
Method Detail
-
decodePassword
public String decodePassword(String encodedPassword, String key)
Description copied from interface:PasswordEncodingDecodes an encoded database password.- Specified by:
decodePasswordin interfacePasswordEncoding- Parameters:
encodedPassword- - The encoded password to be decodedkey- - An optional data element which can be used to unlock the password. Some encoders may require the key.- Returns:
- The decoded normal/plain password.
-
encodePassword
public String encodePassword(String normalPassword, String key)
Description copied from interface:PasswordEncodingEncodes a normal/plain database password.- Specified by:
encodePasswordin interfacePasswordEncoding- Parameters:
normalPassword- - The normal/plain password to be encodedkey- - 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.
-
-