How to encrypt and decrypt a String in Apex using the Crypto class

  • 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 :D

    http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_restful_crypto.htm

  • 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.

License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM