Package configurations provide a means of making packages portable as well as easing, or even automating, the process of moving a package from development, to testing, and finally to production. This ability is provided by storing connection string information, as well as a wide variety of other package properties, in one or more of the five providers:
Once the package configurations is completed then the configuration property can be changed to reflect the new value and is loaded at run time, rather than having to re-open the package in BIDS.
MSDN provides documentation of all five types here as well as outlining how configurations are loaded. Rafael Salas has posted an excellent technical article as well that outlines the use and creation of package configurations here.
During a recent integrations services class the topic of encrypting connection strings within a package configuration arose. The business need was outlined as requiring that all connection strings be stored in a configuration provider and that the entire string must also be encrypted. I promised to post the steps necessary to meet this constraint and while typing out the steps I recalled that I discovered this process reading a post from Michael Coles blog. Rather than re-create what has already been done I prefer to give credit where credit is due. Michael’s post can be found here and gives step by step instructions and explanation.