[Update: 2011-08-21] 1.5.1116 has been released that implements the new Restore feature and has added skinning. This means you can effectively clone your iPhone or Android authenticator, which was impossible before. Also with the new skins you can make it look more the official application or create your style.
More details at http://code.google.com/p/winauth
I still heartily recommend you instead use the physical authenticator from Blizzard, or a non-jaibroken/non-rooted phone.
However, if you are unable to get those, or would like to have an authenticator clone (useful in case your phone dies or you left it somewhere) then this is a good alternative.
Importantly, WinAuth is open-source so you can build it yourself (and recommended) to ensure nothing untoward is going on. It has many useful features, including loading of some other BMA keys (rooted Android and Java clones), encrypting stored keys and is portable.
Features:
- Register a new Authenticator
- Clone/import an iPhone authenticator using Restore feature
- Take backup of authenticator using the Restore feature
- Skin WinAuth to look like the official app
- Load/save/create multiple authenticators, saved with account-based/user encryption
- Import key from Android Mobile Authenticator and Java enabled phones
- Export key into other applications
- Displays code as bitmap making it harder to be read by malicious apps
- Auto/manual time-sync with Battle.net servers
- Auto-refresh code showing code's valid duration or manual operation by pressing button
- Always on top option
- Optional auto "copy to clipboard" on code generation
- Show/hide serial number
- Auto type directly into code field on hitting a single system-wide hotkey
- Send backups of authenticator data to your email
It is also ported it to Windows Mobile 6.x
Hope it is useful.
-c.