An alternative is just to use a 'bytea' or a bitstring in Postgres since you have a hash value anyhow.
* It'll take 9 bytes rather than 8. But space is usually cheap nowadays.
* a bitstring will take exactly 8 bytes.
* a bytea is varying and can be extended to a larger hash later easily if needed.
* You can get a hex representation directly in the psql(1) console.
* The data becomes more agnostic: you don't need to know the int->uint translation is needed and other systems will have an easier time interoperating.
* You won't accidentally do integer arithmetic on the hash value.
Of course, the overhead should be measured, but I don't think it'll be that big in practice. The major drawback is when doing table scanning where more bytes are stuffed in there. If the system isn't efficiency-critical I'd strongly recommend storing data in a representation which match the actual data you are working with.