Class 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 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 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.