docs: public String decrypt(String encrypted, SecretKey key) {
  
          // Basic null/empty check.
          // An empty string can be encrypted, but not decrypted:
          if (StringUtils.isEmpty(encrypted)) {
              return encrypted;
          }
  
          Cipher cipher = getCipher();
  
          // Separate the initialisation vector from the data:
          byte[] bytes = ByteArray.fromBase64(encrypted);
          byte[] iv = ArrayUtils.subarray(bytes, 0, getIvSize(cipher));
          byte[] data = ArrayUtils.subarray(bytes, getIvSize(cipher), bytes.length);
  
          // Decrypt the data:
          byte[] result = decrypt(iv, data, key, cipher);
  
          // Return as a String:
          return ByteArray.toString(result);
      }