public class EncryptData {
public static String encrypt(String plainText) {
Blob key = Blob.valueOf('1234567890123456'); // Example key (use a proper key management system)
Blob data = Blob.valueOf(plainText);
Blob encryptedData = Crypto.encryptWithManagedIV('AES256', key, data);
return EncodingUtil.base64Encode(encryptedData);
}
public static String decrypt(String encryptedText) {
Blob key = Blob.valueOf('1234567890123456');
Blob encryptedData = EncodingUtil.base64Decode(encryptedText);
Blob decryptedData = Crypto.decryptWithManagedIV('AES256', key, encryptedData);
return decryptedData.toString();
}
}
cHVibGljIGNsYXNzIEVuY3J5cHREYXRhIHsKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGVuY3J5cHQoU3RyaW5nIHBsYWluVGV4dCkgewogICAgICAgIEJsb2Iga2V5ID0gQmxvYi52YWx1ZU9mKCcxMjM0NTY3ODkwMTIzNDU2Jyk7IC8vIEV4YW1wbGUga2V5ICh1c2UgYSBwcm9wZXIga2V5IG1hbmFnZW1lbnQgc3lzdGVtKQogICAgICAgIEJsb2IgZGF0YSA9IEJsb2IudmFsdWVPZihwbGFpblRleHQpOwogICAgICAgIEJsb2IgZW5jcnlwdGVkRGF0YSA9IENyeXB0by5lbmNyeXB0V2l0aE1hbmFnZWRJVignQUVTMjU2Jywga2V5LCBkYXRhKTsKICAgICAgICByZXR1cm4gRW5jb2RpbmdVdGlsLmJhc2U2NEVuY29kZShlbmNyeXB0ZWREYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBkZWNyeXB0KFN0cmluZyBlbmNyeXB0ZWRUZXh0KSB7CiAgICAgICAgQmxvYiBrZXkgPSBCbG9iLnZhbHVlT2YoJzEyMzQ1Njc4OTAxMjM0NTYnKTsgCiAgICAgICAgQmxvYiBlbmNyeXB0ZWREYXRhID0gRW5jb2RpbmdVdGlsLmJhc2U2NERlY29kZShlbmNyeXB0ZWRUZXh0KTsKICAgICAgICBCbG9iIGRlY3J5cHRlZERhdGEgPSBDcnlwdG8uZGVjcnlwdFdpdGhNYW5hZ2VkSVYoJ0FFUzI1NicsIGtleSwgZW5jcnlwdGVkRGF0YSk7CiAgICAgICAgcmV0dXJuIGRlY3J5cHRlZERhdGEudG9TdHJpbmcoKTsKICAgIH0KfQ==