A transparent stream that updates the associated message digest using the bits going through the stream.
To complete the message digest computation, call one of the digest
methods on the associated message digest after your calls to one of this digest input stream's {@link #read() read} methods.
It is possible to turn this stream on or off (see {@link #on(boolean) on}). When it is on, a call to one of the read
methods results in an update on the message digest. But when it is off, the message digest is not updated. The default is for the stream to be on.
Note that digest objects can compute only one digest (see {@link MessageDigest}), so that in order to compute intermediate digests, a caller should retain a handle onto the digest object, and clone it for each digest to be computed, leaving the orginal digest untouched.
@see MessageDigest
@see DigestOutputStream
@version 1.38 05/11/17
@author Benjamin Renaud