recursive fast hash