October 08, 2014

Encryption In QlikView



There is no documented encryption functions for QlikView but it is possible with Expressor or VB script macro.
Using a self contained JavaScript encryption implementation i.e CyrptoJS and a few helper functions in the macro module, it is possible to encrypt and decrypt values in QlikView.

Create an empty QVW and copy this into the macro module. Also, add the encrypt/decrypt helper functions below at the end of the macro module.

function encrypt(value, key) {
    return CryptoJS.AES.encrypt(value, key).toString();
}
function decrypt(value, key) {
    return CryptoJS.AES.decrypt(value, key).toString(CryptoJS.enc.Utf8);
}


Now QlikView can encrypt and decrypt values using a specified key.

// Setup the encryption key
Let vEncryptionKey = 'Your Encryption Key Goes Here!099';

// Example with variable
Let vName = 'Justin';
Let vEncryptedName = encrypt('$(vName)', '$(vEncryptionKey)');
Let vDecryptedName = decrypt('$(vEncryptedName)', '$(vEncryptionKey)');

// Example with LOAD
ExampleWithLOAD:
Load
    Name,
    EncryptedName,
    decrypt(EncryptedName, '$(vEncryptionKey)') as DecryptedName
;
Load
    Name,
    encrypt(Name, '$(vEncryptionKey)') as EncryptedName
;
Load
    'Justin' as Name
AutoGenerate 5;

No comments: