Apparently it is not possible to compute all MD5 values from 0x00000000000000000000000000000000
to 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
.
As far as I understand this operation is hard because cryptographic hash functions make it difficult to calculate a message for a given digest (Pre-image resistance).
Storing all MD5 hashes requires $16 * 2^{128}$ Bytes, or $5.44 * 10^{39}$ Bytes, or billions of Yottabytes (1 Yottabyte = $10^{24}$ Bytes). This doesn't yet count the message(s) for each digest. To put this in context: 2011 it was estimated that the world wide storage capacity is "only" 295 Exabytes, ca. 0.0003 Yottabytes.
But MD5's collision resistance is broken. It doesn't take much time to create two different messages with the same hash.
Has the capability to provoke collision attacks in MD5 made it easier to create tables of pre-computed hashvalues?