code: public String decrypt(String data) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
          if (data == null) return null;
          byte[] dataBytes = Base64.decode(data, mBuilder.getBase64Mode());
          SecretKey secretKey = getSecretKey(hashTheKey(mBuilder.getKey()));
          Cipher cipher = Cipher.getInstance(mBuilder.getAlgorithm());
          cipher.init(Cipher.DECRYPT_MODE, secretKey, mBuilder.getIvParameterSpec(), mBuilder.getSecureRandom());
          byte[] dataBytesDecrypted = (cipher.doFinal(dataBytes));
          return new String(dataBytesDecrypted);
      }
docs: Decrypt a String
  
  @param data the String to be decrypted
  
  @return the decrypted String or {@code null} if you send the data as {@code null}
  
  @throws UnsupportedEncodingException       if the Builder charset name is not supported or if
  the Builder charset name is not supported
  @throws NoSuchAlgorithmException           if the Builder digest algorithm is not available
  or if this has no installed provider that can
  provide the requested by the Builder secret key
  type or it is {@code null}, empty or in an invalid
  format
  @throws NoSuchPaddingException             if no installed provider can provide the padding
  scheme in the Builder digest algorithm
  @throws InvalidAlgorithmParameterException if the specified parameters are inappropriate for
  the cipher
  @throws InvalidKeyException                if the specified key can not be used to initialize
  the cipher instance
  @throws InvalidKeySpecException            if the specified key specification cannot be used
  to generate a secret key
  @throws BadPaddingException                if the padding of the data does not match the
  padding scheme
  @throws IllegalBlockSizeException          if the size of the resulting bytes is not a
  multiple of the cipher block size
  @throws NullPointerException               if the Builder digest algorithm is {@code null} or
  if the specified Builder secret key type is
  {@code null}
  @throws IllegalStateException              if the cipher instance is not initialized for
  encryption or decryption