Every now and then I find myself answering the same questions over and over. Those are topics I always like to post here so I have a place to share the information to a larger audience rather than only in the SalesLogix Business Partner newsgroups. A question that surfaces every now and then is if it is possible to encrypt sensitive data stored in a SalesLogix database.
There are several ways you could accomplish this. However, you can make it an easy task and use a DLL that is installed by SalesLogix for encryption. There is a DLL named SLXRWEL.DLL that is used to encrypt/decrypt the ReadWrite Password (See my article Connecting with the RWPassword From External Applications on slxdeveloper.com for more details). You could use that for your own encryption as well.
Dim objRwel Dim sEncrypted Set objRwel = CreateObject("SLXRWEL.SLXRWEOBJ") sEncrypted = objRwel.Add("This is my text") Set objRwel = Nothing MsgBox "Encrypted value is: " & sEncrypted
Dim objRwel Dim sDecrypted Set objRwel = CreateObject("SLXRWEL.SLXRWEOBJ") sDecrypted = objRwel.Remove(sEncrypted) Set objRwel = Nothing MsgBox "Decrypted value is: " & sDecrypted
Downsides are that anyone can use that library (if they know that is what you used to encrypt the value). Also, if SalesLogix changed it somehow there’s a chance it would break your stuff too (but that’s unlikely since it would likely break theirs too). But it is convenient to use and for general use I think it’d be safe to use. Alternatively, instead of using “Add” & “Remove” you can use “AddKey” and “RemoveKey” if you want to specify your own encryption seed.