If you are looking for a way to restore the original position back, you need something totally unlike Zobrist, because the main goals when constructing a hashing algorithm are absolutely opposite to what you want:
A hash should fit into the computer representation of an integer (32 bits or 64 bits, or, maybe in the future, 128 bits). Anything beyond that slows down things considerably.
Hashes for the similar positions (which tend to arise during the game at the approximately same time) should be as different as possible to avoid hash collisions that, again, impact the performance.
So, basically, you don't have enough bits for the full representation, and even if you had, the use of easy-reversible conversion will harm the quality of the hashing and will slow down the engine.
Not sure, why you need this, but if you need to store positions somewhere, I'd recommend to use a dictionary
or a map
, that maps the Zobrist value to the FEN string or something similar. Maps have O(1) access time, so it's going to be quite fast, and you're only limited by the amount of memory.