Class AbstractCipher

  • All Implemented Interfaces:
    ICipher, ICipherSpi
    Direct Known Subclasses:
    MessageDigestCipher, SymmetricCipher

    @StableMinor(version="14.0",
                 sinceVersion="5.5")
    public abstract class AbstractCipher
    extends Object
    implements ICipherSpi
    An abstract ICipher implementation for easing concrete implementations.

    This abstract class provides implementations for the string-based encryption and decryption operations, by encoding the encrypted bytes in Base64.

    Since:
    5.5.0
    Version:
    $Revision: 24477 $ $Date: 2021-04-28 11:30:36 -0300 (Wed, 28 Apr 2021) $
    • Constructor Detail

      • AbstractCipher

        public AbstractCipher()
    • Method Detail

      • getStringCharset

        protected String getStringCharset()
        The charset used to perform the encoding between String and bytes of the plain text string values in encrypt(String) and decrypt(String).

        The default value is UTF-8. This method may be overridden to change it.

        Returns:
        the charset.
        Since:
        5.5.0
      • getUseURLSafeBase64Variant

        protected boolean getUseURLSafeBase64Variant()
        Indicates if a URL safe Base64 variant is to be used when encoding bytes to String.

        The default value is true. This method may be overridden to change it.

        Returns:
        true if a URL safe variant is to be used, false if the standard Base64 is to be used.
        Since:
        5.5.0
      • encrypt

        public String encrypt​(String value)
        Encrypts a string.

        This abstract implementation converts the given string to bytes based on getStringCharset(), encrypts it with ICipher.encrypt(byte[]), and encodes the result to a string using the Base64 algorithm.

        Specified by:
        encrypt in interface ICipher
        Parameters:
        value - the original string.
        Returns:
        the encrypted string.
        Since:
        5.5.0