MessageDigest getMessageDigest() {
		try {
			return (MessageDigest) messageDigest.clone();
		}
		catch (CloneNotSupportedException e) {
			throw new RuntimeException("Unsupported clone for MessageDigest.", e);
		}
	}
@Test
	void messageDigestReturnsInstancesWithIndependentAndReproducibleDigests() {
		final String updateString1 = "md1_update";
		final String updateString2 = "md2_update";
		final Charset charset = StandardCharsets.UTF_8;

		final byte[] md1BytesFirstTry = testee.getMessageDigest().digest(updateString1.getBytes(charset));
		final byte[] md2BytesFirstTry = testee.getMessageDigest().digest(updateString2.getBytes(charset));
		final byte[] md1BytesSecondTry = testee.getMessageDigest().digest(updateString1.getBytes(charset));
		final byte[] md2BytesSecondTry = testee.getMessageDigest().digest(updateString2.getBytes(charset));

		Assertions.assertThat(md1BytesFirstTry).isNotEqualTo(md2BytesFirstTry);

		Assertions.assertThat(md1BytesFirstTry).isEqualTo(md1BytesSecondTry);
		Assertions.assertThat(md2BytesFirstTry).isEqualTo(md2BytesSecondTry);
	}