🔒 Unlocking SSJS Encryption and Decryption: A Handy Code Snippet! 🔓
If you're on the hunt for a robust server-side JavaScript (SSJS) solution for encryption and decryption, look no further! Below is a concise yet powerful code snippet that showcases how to implement these vital security features seamlessly.
<script runat="server">
Platform.Load("core", "1");
try {
var email = "abc@gmail.com";
var encryptionKey = "your_encryption_key";
var saltValue = null;
var initVectorValue = null;
var encryptedEmail = encryptData(email, encryptionKey, saltValue, initVectorValue);
var decryptedEmail = decryptData(encryptedEmail, encryptionKey, saltValue, initVectorValue);
var encryptionResult = {
encryptedEmail: encryptedEmail,
decryptedEmail: decryptedEmail
};
Write(Stringify(encryptionResult));
} catch(error) {
Write(Stringify(error));
}
function encryptData(data, key, salt, iv) {
Variable.SetValue("@dataToEncrypt", data);
Variable.SetValue("@EncryptionKey", key);
Variable.SetValue("@SaltValue", salt);
Variable.SetValue("@InitVectorValue", iv);
var encryptedValue = "";
encryptedValue += "\%\%[";
encryptedValue += "SET @EncryptedData = EncryptSymmetric(@dataToEncrypt, 'AES', 'password', @EncryptionKey, 'salt', @SaltValue, 'initvector', @InitVectorValue)";
encryptedValue += "Output(Concat(@EncryptedData))";
encryptedValue += "]\%\%";
return Platform.Function.TreatAsContent(encryptedValue);
}
function decryptData(data, key, salt, iv) {
Variable.SetValue("@dataToDecrypt", data);
Variable.SetValue("@EncryptionKey", key);
Variable.SetValue("@SaltValue", salt);
Variable.SetValue("@InitVectorValue", iv);
var decryptedValue = "";
decryptedValue += "\%\%[";
decryptedValue += "SET @DecryptedData = DecryptSymmetric(@dataToDecrypt, 'AES', 'password', @EncryptionKey, 'salt', @SaltValue, 'initvector', @InitVectorValue)";
decryptedValue += "Output(Concat(@DecryptedData))";
decryptedValue += "]\%\%";
return Platform.Function.TreatAsContent(decryptedValue);
}
</script>