Applied Cryptography by Bruce Schneier
was always the first point of reference when I was working in the credit card personalisation sector. I still have a copy of it in my bookshelf.
As for a C++ library, I would strongly recommend the Crypto++ library
which is a very good library for encryption and encoding of a variety of data streams and has a lot of good documentation.
As has been pointed out Java and .NET libraries exist in the standard frameworks and both have reasonable documentation.
The important thing to remember about cryptography is that the algorithms are not the real problem, it is the key management
. Also remember that cryptography is used in a variety of ways (authentication, integrity, confidentiality etc) but it all boils down to risk management. Assess the risk of the data being compromised and the cost involved in addressing the situation when it has been and make sure you choose security measures appropriately.
Having worked directly in an industry that relies upon such things, cryptography is easy, key management is difficult. complete security is impossible.