I don't really get this !?!
(1) Can we reverse a crypto-hash ??
There can be infinitely many arbitrary data blocks with the same MD5
As I saw in your article, you make some assumption about the data : such as numeric, or uses special symbols etc .. But what if you have no idea AT ALL
(2) If the data-block is combined with a random salt before generating MD5 hash, then ?? Rainbow tables are almost useless !