How can I transfer all funds to new keys? My wallet.dat (bitcoin-3.4) has maybe been left on a work machine, leaving it accessible to the admins there.

I would like to transfer all my current funds to a new wallet. How do I do this and how can I make sure that:


I still will be able to receive on the old keys (in case someone sends something there)
Not all my funds are transferred to the same key, making me more traceable.
Easiest way I can think of:

Use up all of the addresses in the keypool by requesting 100 new addresses. If you're comfortable in the command-line on Mac or Linux:

for i in {1..100}; do bitcoind getnewaddress; done


Then perform a bunch of sends-to-self using MORE freshly-generated addresses. Again, if you're comfortable on the command line and had (say) 10 bitcoins in your wallet you wanted to send in 10 different transactions over the course of an hour you might do:

for i in {1..10}; do bitcoind sendtoaddress $(bitcoind getnewaddress) 1; sleep 360; done


This wallet will still get coins sent to the old addresses, although if somebody at work DID have a copy they could also spend coins that came in to the old addresses.  There's not much you can do about that.