hash calculation