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
{% 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
{% 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']
{% 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']
{% 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
{% 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
{% 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
{{ nil | rsa_random_key: 'AES-128-CBC' | base64_encode }}
{% comment %} ETnoMe4SJ/jHWAtQfdaPFw== {% endcomment %}