Types of Cryptographic Hash Functions and Different Ways to Increase Security in Hash Functions