This function exists as a convenience in case you need it, HOWEVER it's
recommended to design your code so you DON'T need to use this (use
toPassword instead):
Note, this only checks Phobos's RNG's and digests, and only by type. This
works on a blacklist basis - it blindly accepts any Phobos-compatible RNG
or digest it does not know about. This is only supplied as a convenience. It
is always your own responsibility to select an appropriate algorithm for your
own needs.
Compare two arrays in "length-constant" time. This thwarts timing-based
attacks by guaranteeing all comparisons (of a given length) take the same
amount of time.
Thrown whenever a digest type cannot be determined.
For example, when the provided (or default) 'digestCodeOfObj' or 'digestFromCode'
delegates fail to find a match. Or when passing isSameHash a
Hash!Digest with a null 'digest' member (which prevents it from determining
the correct digest to match with).
A reference-counted type for passwords. The memory containing the password
is automatically zeroed-out when there are no more references or when
a new password is assigned.