int hashByteString(const char* str, int len) {
  int hash = 0;

  while (len--) {
    hash = (hash * 33) ^ *str++;
  }

  return hash;
}

/* Bernstein's hash */
int hashByteString(const char* str, int len) {
  int hash = 0;

  while (len--) {
    hash = (hash * 33) ^ *str++;
  }

  return hash;
}

Document where our hash function comes from
Document where our hash function comes from
