generalized fnv somewhat; validation and getSignature are done