I do, can't give you the code though
the basic gist is that I have an array which is: "abcd...xyz1234...ABC...+=-#$"
Lets say the end result is 70 characters. I then generate a random number between 1 and 70. that random number is then used with the array eg $char = $arraystr[$ptr];
I actually generate 5 of these strings and then rate them according to some rules, I don't like using 0O combinations and don't want to start with - but it's ok in the middle. I have alot more encryption going on but that's part of the engine within.