Please provide apex code examples to encrypt and decrypt a string using all of the supported encryption algorithms (AES128, AES192, and AES256). I searched for clear and concise code examples on this site, but found none (if you know of an answer with all said examples, please point me that way). I have tried to encrypt a String with the Crypto class, but was unsuccessful. Instead of debugging my code, I think it will be more helpful to look at some working examples.
Thanks 😀
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_restful_crypto.htm
Answer
The below wiki gives good set of examples for crypto classes
http://wiki.developerforce.com/page/Apex_Crypto_Class
A sample scenario from above article
// Generate an AES key for the purpose of this sample.
// Normally this key should be stored in a protected custom setting
// or an encrypted field on a custom object
Blob cryptoKey = Crypto.generateAesKey(256);
// Generate the data to be encrypted.
Blob data = Blob.valueOf('Test data to encrypted');
// Encrypt the data and have Salesforce.com generate the initialization vector
Blob encryptedData = Crypto.encryptWithManagedIV('AES256', cryptoKey, data);
// Decrypt the data - the first 16 bytes contain the initialization vector
Blob decryptedData = Crypto.decryptWithManagedIV('AES256', cryptoKey, encryptedData);
// Decode the decrypted data for subsequent use
String decryptedDataString = decryptedData.toString();
Here is below blog that points a use case of how to store once we encrypt data in sfdc
http://cloudyworlds.blogspot.in/2014/01/encrypting-xml-response-from-external.html
Basically there are two versions
WithManagedIv()
Here SFDC itself handles vector generation
Encrypt()
Here one needs to include vector also as parameter for encryption.
Attribution
Source : Link , Question Author : edgartheunready , Answer Author : Community