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
  • Constructor Details

    • Rot47PasswordEncoder

      public Rot47PasswordEncoder()
  • Method Details

    • 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 password.
    • 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.