hash algorithms.