I have an 8-digit number and you have an 8-digit number - I want to see if our numbers are the same without either of us passing the other our actual number. Hashing the numbers is the obvious solution. However, if you send me your hashed number and I do not have it - it is very easy to hash all the permutations of an 8-digit number and see your number.
I am looking for a way to increase the complexity of the 8-digit number while maintaining uniqueness and a universal process (i.e. we need to be able to apply the same process on both ends.) Squaring the number or something like that will not work because there are the same number of unique squares of an 8 digit number as there are unique 8 digit permutations. Salting will not work for the same reason.
Is there anything I can do to the number to make brute-forcing all permutations not viable?
There are only $10^8$ eight digit numbers, even if you allow leading zeros. No deterministic operation can increase the entropy of this. Your example of squaring is a good one. It makes the number larger, but does not increase the number of results. You need more possible codes, either by adding digits or by having more digits as in allowing other characters.
One other approach is to make a very slow checking algorithm. If it takes an hour to check a code (and that is acceptable if somebody has the code), brute forcing would require a considerable investment in computing resources. One could still buy $10^4$ computers, set them running in parallel, and have the answer in a month and a half.