Consider two sets:
The "big set" contains all integers between $0$ and $2^{160}$ exactly once.
The "small set" contains all integers between $0$ and $2^{32}$ exactly once.
Given that the number of members in the "big set" is greater than those in the "small set", there can't be an injective function $f(n_b) = n_s$ mapping any input being a member of the "big set" $n_b$ to an output that's a member of the "small set" $n_s$. If that function $f$ existed, it'd be the questions' answer.
For practical reasons, we assume that there can however still be a construction/algorithm with a practical function $f_p$ where the results of all inputs into $f_p(n_b)$ are a member of the "small set" and each $n_b$ points to a distinct $n_s$.
For a lack of understanding about cryptographic concepts, I'll call this property "collision-aware". E.g. to implement this construction, assuming a storage capacity of the size of $2^{256}$ (256-bit unsigned integer), is there a function $f_p$ or an algorithm that for any $n_b$ either returns a "collision" ("collision-aware") or a distinct member of $n_s$?