Introduction
This step allows you to encrypt/decrypt the values of a particular valid field of a table or Fixed/CSV file.
The original field must be a non-null string field. The Plug-In uses Base16Coder class to encrypt/decrypt the values of a field.
The Plug-In also has a demo text field, where you can type a string and verify the encryption/decryption occurs in an accurate manner.
Author
This plugin was written by Gunjan Shah working for Persistent Systems
in Business Intelligence Competency Center (BICC)![]()
"The Business Intelligence Competency Center (BICC) at Persistent has expertise in all aspects of Analytics and Business Intelligence solutions ranging from Reporting to Tools Assessment and Migration and Certification. We have a decade long practice in developing large scale Data Warehousing, Business Intelligence and Analytics solutions for some of the leading ISVs in the world. We offer our customers the most comprehensive portfolio of services from Reporting to Data Mining and Professional Services."
The plug-in was contributed on the PDI forum.
Installation
Unzip file Encrypt_Decrypt.zip
to the plugins/steps/ directory of your Pentaho Data Integration distribution. The Plug-In is developed with the latest 3.0.1 GA release & is required for this transformation.
Source code
The source code for the plugin is available under an LGPL license over here in subversion Src.zip
.
Debug or build
The latest 3.0.1 release creates 'source' folder once the installation completes:
Extract src.zip (attached to source code section) file inside it. The zip file contains a build.bat file along with all the required .java files.
Run this .bat file to create EncryptDecrypt.jar file, it will also replace the old .jar file with the latest one into $Kettle_Home/source/plugin/steps/<Encrypt_Decrypt>/ folder.
Example
Download the following example (example.zip
) to see this plugin in action:
Screen shot

As you can observe from the dialog box of the Plug-In that you can either chose field name or any value for encryption/decryption one at a time. You can select type as encrypt or decrypt. The value text field is just a demo of encryption/decryption for any entered string. It doesn't output the encrypted/decrypted value to any file or database table.
About the encryption/decryption code, you can extend the functionality of Plug-In for other data types like int, number, date etc.. by writing your own algorithm in EncryptDecryptAlgo.java file
Hi Gunjan,
This looks really promising and I think it is very much needed in the base PDI.
However I think it should be renamed "Encode/Decode Base64".
I may be missing something but encoding in Base64 is not really the same as using an "encryption" cipher.
Unless it is adjusted to really do an encryption such as DES etc.
Thoughts?
Thanks
Kent