AES client-side encryption
Halfnote does client side encryption and decryption in JavaScript (in your web-browser) by storing the key locally. It uses local storage in IE 5+ and Firefox 2 (see Halfnote: Secure Document Sharing). This only works in these two browsers. Another approach were you not store the keys are possible, since the key can be generated from a password (see RFC 2898). A JavaScript implementation of Password-Based Key Derivation Function 2 (PBKDF2) exists, and this is used in the Ajax password manager Passlet. See also Host-Proof Hosting, an Ajax pattern where all encryption and decryption takes place inside the browser itself.
To build a complete system you need to generate the keys (pbkdf2.js), you need the be able to encrypt and decrypt with these keys (rijndael.js), and you need a SHA-1 JavaScript implementation (sha1.js). The source of the Passlet site (use view source in your browser) should give you an example on how to use this to implement AES client-side encryption and decryption in JavaScript. [via]
November 30 2006 (aa)