fixed hash generation