Protecting the data used and generated by your application has become exceedingly important in this day and age. The spread of viruses throughout the Internet is so commonplace that most consumers with PCs own some form of virus protection. When designing and building applications that will be exposed to the Internet, one of the primary concerns is security: preventing theft of valuable data as well as controlling damage from malicious attackers.
If you send data over a clear channel that anyone else can read, you can bet that someone is trying to glean some useful information out of the data you're sending. This chapter introduces you to the concepts and programming techniques that you will need to prevent people from reading your private data, as well as techniques that you can use to validate whether data has changed and whether data was sent from a legitimate source. All of this is possible with cryptography and data protection.