Creating UID's using hash functions - most appropriate hashing algorithm? I have circa 1 million datapoints, each with a unique integer ranging from 6 to 24 digits: 

exampleDataPointOne: 655092
exampleDataPointTwo: 333402221 
exampleDataPointThree: 332021
...
exampleDataPointN: 903232211 


I want to run each of these unique integers through a hash function, with the objective of 1) maintaining the uniqueness, 2) obscuring the underlying integer value and 3) having a hash output with a length of &lt;= 34.

I've looked around for potential hash algo's that are a good fit, such as BLAKE, md5 and the sha family of hashes.

Given my requirements, what is the most advisable hash algorithm to use?
I want to run each of these unique integers through a hash function, with the objective of 1) maintaining the uniqueness, 2) obscuring the underlying integer value and 3) having a hash output with a length of &lt;= 34.


You need to be very clear about what you mean by "obscuring."  The basic problem here is that your values look like they're likely to be subject to brute force guessing attacks—just like passwords are.  This means that if you apply a public, unkeyed hash function to your values, you subject yourself to the same sorts of attacks that are very successful against passwords—particularly attacks against unsalted passwords.

If by "obscure" you really mean that an attacker should not be able to figure out which number corresponds to each hash, then your solution needs to incorporate a secret key, and that key needs to be protected.  This is much, much, much, much more important than whether you use SHA-2 or Blake2.  (PS: Don't use MD5 for anything!  And if you need to incorporate a secret into the computation, don't do it in an ad-hoc manner—use HMAC-SHA2 or Blake2's optional key support).