This thesis concentrates on analysis of cryptographic hash functions, one of the most important primitives used in the modern cryptography. We start with an introduction of the cryptographic hash functions, and a survey on the development of the cryptanalysis tools. To enrich the cryptanalysts' toolbox, we developed several interesting techniques under the framework of differential cryptanalysis, and applied them to LAKE, BLAKE, ARIRANG and BMW to find collisions. We also improved the meet-in-themiddle preimage attacks, one of the most powerful techniques for breaking one-wayness of many functions, and applied these techniques to SHA-2, Tiger, MD4, and HAVAL to find preimages. All these techniques await for further development and applications to other hash functions including the candidates in current SHA-3 competition.