In principle, one has to adjust some technical problems due to the fact of working on a finite field, i.e. a Galois field. Inner product space definition requires the field be $\mathbb R$ or $\mathbb C$ in order to get completeness, see this question. However, I should note I'm aware there exist attempts to write Quantum Mechanics on a finite Hilbert space, over a Galois field. (but I'm not aware of details.)
Let us neglect these aspects, and assume we can load a proper vector space $V$ on memory (that would be infinite sized), over the field $\mathbb R$ (idealized extension of the finite field one can use on a computer). I mean "infinite size" in the sense that we can allocate an infinite number of vector with fixed lenght $n$, since surely we can't allocate an infinite number of entries in a finite time. An inner product can be defined as usual. So $V$ is an inner product space, hence Hilbert since has finite dimension.
Let $h : V \to \mathbb R$ the hash function, defined in some manner. Surely, it is injective (otherwise hash makes no sense) and we can require it is linear. Hence is a linear functional. We can't distinguish infinite values between them, so we would require $h$ be bounded (i.e., $\sup_{\| v \| = 1 } h(v) < \infty$), making $h$ a bounded linear functional, i.e., $h \in V^*$ (dual of $V$). Since $V$ is Hilbert, Riesz' theorem holds and there exists a unique $w \in V$ such that $h(v) = (v, w)$ for all $v\in V$.
Remarks. I don't really know how a hash function is defined, however should be noted that linearity seems a strange request (different - in principle - sequences such as $(1,1,\dots, 1)$ and $(2,2,\dots,2)$ would have hash codes which are one the double of the other). In truth, all that seems to me an overkilling (maybe an exercise), if not concerned with finite fields.