> This page is for Docs.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://zuora.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server.

# Encryption in Liquid expressions

> This reference provides the sample filters for encryption in Liquid expressions.

This reference provides the sample filters for encryption in Liquid expressions.

## rsa_encrypt

Encrypt with RSA.

Parameters: data, action\['encrypt', 'decrypt'], key

```json
{% assign public_key = '-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdlUof3WUjlLwlwva420D5nnXh 
xwOqYAUzHIq/AUzBYkDDla2hTtvspcebiFnKtXWmlZrzu4dNYtvE/2ZPiqrmPl8l 
PZAX74WwDRjMCC8HPGUmt6/2mVtXQ7wM9R1KEe9kX0lLeRLmK+lW24KvSL8U1yat 
WO1TP4GmTZ7Kw21fDQIDAQAB 
-----END PUBLIC KEY-----' %} 
{% assign input = 'encryptedMessage' %} 
{{ input | rsa_encrypt: 'encrypt', public_key }} 
{% comment %} Wha580r+8bO/D2dBXS1zxkzQKnJZpR3EGu8h4a0hx5QPhY7GUJVTU5le/D5bRQDyiWlckz1hMPIAj3rU79eF04d3XLKCgD07XKoIEkQ1e3/i3s2FWhFyhyIPgOeqdwF9M89nx62epoLGGiKmxew+OnWTyRXwfIB8BRx16vTD9wY= {% endcomment %}
```

## rsa_decrypt

Decrypt with RSA.

Parameters: input, private key

```json
{% assign private_key = '-----BEGIN RSA PRIVATE KEY----- MIICXQ
IBAAKBgQCdlUof3WUjlLwlwva420D5nnXhxwOqYAUzHIq/AUzBYkDDla2h 
TtvspcebiFnKtXWmlZrzu4dNYtvE/2ZPiqrmPl8lPZAX74WwDRjMCC8HPGUmt6/2 
mVtXQ7wM9R1KEe9kX0lLeRLmK+lW24KvSL8U1yatWO1TP4GmTZ7Kw21fDQIDAQAB 
AoGAQCRoS5geduEvxF8bdhso03JAoWoUf+EdvLQ9dYnd6ElJ+1KNnj8vHaBNI23Y 
vr4l6Wyz6cnHRSScOA+NYYscDICJKbVvYR4CMezjkaNCPwzEezg0ievNHZG3jaSG 
SALVbOA3ZR3zjZoLILYbuXeNEOVhyQvTcXQuiDWJDF9okTECQQDLQeFDW+9Yj/aN 
nZlPrGUGVFg7DPPjKS+f+iAbxX0Dy5Dx+oENbSWQoPq8Gkrp47Ih0o+NTTBawXf/ 
5TPOON0XAkEAxnlVV28sL0jLM/XlTmkzF3ALNTOheatnpCtDmhUoIsczr0qrqPHD 
FhzXaJGCFrRNw578OudK7zEmFpb8LccjewJBAIsLsW9kGBNMwMzWMEgJ1j6DOqyC 
yuDuju7wrEBzVHdhLfHrfZdSwGz1QzGlBvSD2Js8sQln8ZlUWqQLBuqfidcCQGlW 
dlv8bif+a5L9XCG8pdg3qEspRveLaGtyZuO9fNrQfPb5G5iED/WJgy5FpBSmx2se 
02Hz5gqDPGLa6abmPUcCQQCFgObpLkVla0amHz/U7y7pNASK3KzRxRAKJ/RJ5pQo 
rPKZkC+HMMeaq7z1ZBBZ2tRM+BFN13dF/CaUWwGe4fML 
-----END RSA PRIVATE KEY-----' %} 
{% assign input = 'Wha580r+8bO/D2dBXS1zxkzQKnJZpR3EGu8h4a0hx5QPhY7GUJVTU5le/D5bRQDyiWlckz1hMPIAj3rU79eF04d3XLKCgD07XKoIEkQ1e3/i3s2FWhFyhyIPgOeqdwF9M89nx62epoLGGiKmxew+OnWTyRXwfIB8BRx16vTD9wY=' %} 
{{ input | rsa_decrypt: private_key }} 
{% comment %} encryptedMessage {% endcomment %}
```

## symmetric_encrypt

Encrypt/Decrypt with the specified symmetric algorithm.

Parameters: input, action\['encrypt', 'decrypt'], mode, key, iv = nil, no_padding\['true', 'false']

```json
{% assign input = 'encryptedMessage' | base64_encode %}
{% assign iv = 'initialVector000' | base64_encode %}
{% assign key = 'encryptionKey000' | base64_encode %}
{{ input | symmetric_encrypt: 'encrypt', 'AES-128-CBC', key, iv, false | base64_encode}} 
{% comment %} abby2vv8nUuoiagV6P35KY2WKrSQHQ50ihDzRE0uvjI= {% endcomment %}
```

## aes_decrypt

Decrypt with AES.

Parameters: input, decryption_IV, decryption key, mode\['AES-128-CBC', 'AES-256-CBC']

```json
{% assign input = 'abby2vv8nUuoiagV6P35KY2WKrSQHQ50ihDzRE0uvjI=' %} 
{% assign iv = 'initialVector000' | base64_encode %} 
{% assign key = 'encryptionKey000' | base64_encode %} 
{{ input | aes_decrypt: iv, key, 'AES-128-CBC' | base64_decode }} 
{% comment %} encryptedMessage {% endcomment %}
```

## jwt_encode/jwt_decode

Encode/Decode JWT with the specified algorithm.

Parameters for encoding: payload, key, algorithm

Parameters for decoding: token, key, verify

```json
{% assign key = 'jwtKey' %} 
{{ 'abc' | jwt_encode: key, 'HS256' }} 
{% comment %} eyJhbGciOiJIUzI1NiJ9.ImFiYyI.HWTAZzvzs7q4SP9GQwXkqhN_uFQ6aFCJGPuTKUFs_ew {% endcomment %}
{% assign input = 'eyJhbGciOiJIUzI1NiJ9.ImFiYyI.HWTAZzvzs7q4SP9GQwXkqhN_uFQ6aFCJGPuTKUFs_ew' %} 
{% assign key = 'jwtKey' %} 
{{ input | jwt_decode: key, true }} 
{% comment %} ['abc',{"alg"=>"HS256"}] {% endcomment %}
```

## hmac_sha256_sign/hmac_sha512_sign

Use HMAC-SHA256/HMAC-SHA512 to sign a string.

Parameters: input, key

```json
{% assign key = 'testHmacKey' %} 
{{ 'abc' | hmac_sha256_sign: key }} 
{% comment %} EJBqLUcQxuSwQ9UuucfSLiG9IsE2g7+AVRApdxmbOFw= {% endcomment %}
```

## rsa_random_key

Create a random key with the specified algorithm.

Parameters: nil, mode

```json
{{ nil | rsa_random_key: 'AES-128-CBC' | base64_encode }} 
{% comment %} ETnoMe4SJ/jHWAtQfdaPFw== {% endcomment %}
```