An Overview of Cryptographic Hash Functions