|Don't ask to ask, just ask|
I should have formulated that better, my previous post can be misunderstood quite easily. Luckily ww said it much better.
But you are right, my answer isn't really what you were looking for. You seem to need to collect the data over a long time on laptops and the secret database should not be connected while this is happening, right?
Your scheme is a really nice idea, but has problems. Let me elaborate:
Lets say you have chosen a salt. Nobody else can construct a rainbow table in a sensible timeframe without knowing the salt.
But an attacker needs to know only one of those unique numbers you want to keep secret and access to your data on the laptop to find out the salt. He just encrypts the number he knows combined with possible salt values until he finds a encrypted number where there is a corresponding data set
So you need to use a really big salt, more like a password
That salt/password could be stored on the laptop, but then an attacker could just look into your script to find out the password
So you and the data collectors have to type in the salt/password every time they want to collect data. If the attacker gets hold of the laptop he can change the script to store the salt and send it to him or he can collect it later. Granted that is difficult but you still need to secure the laptops more than you might want to. And you have to trust the data collectors
So Xilmans idea to use public-key encryption is really the solution you are looking for with none of the above disadvantages