I realize I did not need to shell for date. I know that I should have used localtime. I was an artifact of the old program I started with.
I am evaluating you method of using a regex to look at the decrypted string. I used a loop to bomb out as soon as I found a character with the MSB bit set. I am not sure yet if this regex does the same. -- Actually, I just verified that is does work and is slightly faster by 10%.
This code was about the same performance as mine. I have believed from the start that the RC4 mod will be the bottleneck even thou my code was a bit simple.