Package org.apache.cayenne.configuration
Class Rot47PasswordEncoder
java.lang.Object
org.apache.cayenne.configuration.Rot47PasswordEncoder
- All Implemented Interfaces:
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
-
Method Summary
Modifier and TypeMethodDescriptiondecodePassword
(String encodedPassword, String key) Decodes an encoded database password.encodePassword
(String normalPassword, String key) Encodes a normal/plain database password.Applies a ROT-47 Caesar cipher to the supplied value.
-
Constructor Details
-
Rot47PasswordEncoder
public Rot47PasswordEncoder()
-
-
Method Details
-
decodePassword
Description copied from interface:PasswordEncoding
Decodes an encoded database password.- Specified by:
decodePassword
in 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
Description copied from interface:PasswordEncoding
Encodes a normal/plain database password.- Specified by:
encodePassword
in 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
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.
-