Tony,
My method only relies on the secrecy of the key string. If the key is easily guessable, my approach is as defenseless as any other approach. The algorythm is so simple as to be almost inconsequential (precisely because I knew there is no way to hide it in Excel), and is based on an old, but still respected, encryption technique. So, choosing a good key of sufficient length is the key (pardon the pun!).
xlbo,
I certainly respect your knowledge about Excel, but I think perhaps the difference between password protection and data encryption hasn't fully registered with you yet. [LOL] What I'm doing has NOTHING in common with the vulnerablility of Excel's built-in password protection.
Actually, my method is more like "One strike and you're out". To decrypt the data, the algorythm is reverse-applied to the scrambled data using whatever key you specify. So if you enter the wrong key phrase, the data gets even MORE scrambled. Your only option at that point is to close the workbook without saving, reopen it, and try again.
As far as writing a cracker routine, it would be tough (but I would LOVE to see you try!). Even after you had my algorythm (which would be easy enough to get - just crack the project password), you're stuck with using a brute-force approach to find the key string (which can be any length - hundreds of characters long if I so desire). To make things worse, you have to write some kind of sophisticated code that recognizes valid content (or have a human check the results of each attempt), because there is NO other indication as to whether you've found the correct password. Then it has to automate the above-mentioned process of closing/reopening the target file for every unsuccessful attempt - not difficult, but time-consuming (and time is the enemy in brute-force decryption).
In summary - yes, it is certainly crackable, but I suspect the people with the time, knowhow, and computing resources to do it probably already work for the US govornment (and if the GOVORNMENT wants your file cracked, it's probably gonna happen no matter what!).
I wouldn't mind being proved wrong, though, if you felt like you wanted to try!
VBAjedi
![[swords] [swords] [swords]](/data/assets/smilies/swords.gif)