code: public String encryptBytes(byte[] credentials) {
          checkNotNull(credentials, "credentials");
  
          try {
              int length = credentials.length;
              byte[] plaintextBytes = ByteBuffer.wrap(new byte[Math.max(length + 4, MINIMUM_LENGTH)])
                      .putInt(credentials.length)
                      .put(credentials)
                      .array();
  
              Cipher cipher = Cipher.getInstance(CIPHER);
              cipher.init(Cipher.ENCRYPT_MODE, _key, _iv);
              byte[] encryptedApiKey = cipher.doFinal(plaintextBytes);
              return BaseEncoding.base64().omitPadding().encode(encryptedApiKey);
          } catch (Throwable t) {
              // This shouldn't happen since AES is supported by all JVMs.
              throw Throwables.propagate(t);
          }
      }
docs: Encrypts a byte array and returns a string representation of the encrypted value.  The original byte array
  can be recovered using {@link #decryptBytes(String)}.