Cryptico seems like a super slick RSA encryption library.
cryptico.wwwtyro.net
In regards to JavaScript applications, suppose I want to send data to the client, have them do something to the data, and pass it back. How can I use RSA to ensure that the data clients send back to the server is not tampered with? Since JavaScript is easily reverse-engineered, is there any practical client-side application of cryptico?
Do you – by your example – mean that you want to hide from the user what his client is doing with the data? If so – it’s impossible.
You should never trust any data which comes from the client.
If you send encrypted data to the client to process – you must assume that the user knows (or will know if he wants) the encryption key, otherwise it will be impossible to process. In other words there is no secure way to hide from the user what his client processes. Obfuscation – like you’ve noticed can always be cracked no matter what language you use.
I think that the most common and practical client-side application for this library would be encrypting user’s data and sending them to server or vice-versa. There may be some cases you can’t use SSL. Moreover, you can make -for example- an encrypted post on facebook which only your friend will be able to decrypt (because he knows the key).