Decrypts a string with a pass phrase using TripleDES encryption. The Decrypt function should use the same encryption key that was used to encrypt the string.

For more detailed info please see EncryptString().


Return Value

Decrypted text.


The string to decrypt.

Optional - A pass-phrase used to encrypt the string.

If this string is not set the default static value set in the DLL is used. You can set the global default value at application startup using wwEncryption::SetEncryptionKey

The Encryption key is hashed via MD5 hashing to provide a valid key size for processing

Determines if the result binary value is returned as binHex (.T.) or base64 (.F. or default) string value


  • TripleDES (default)
  • AES

Optional cipher mode used to encrypt the value. Defaults to ECB which expects 16 byte keys.

  • ECB - auto-sizes
  • CBC - 16 bytes, 24 bytes
  • CFB
  • CTS
  • OFB

The default used in wwEncryption use: ECB with MD5 encoding (no salt) which yields a 16 byte fixed length keys passed to the algorithm. When using other cipher modes be sure to check your specs for key length and hash encoding requirements as each mode has its own key size requirements.

more info

Optionally specify an encryption key algorithm to hash the key to a specific key size (ie. MD5 = 16 bytes). Uses the same modes available in ComputeHash(). Note that key sizes have to match the key requirements of the provider and cipher. ECB cipher commonly works with MD5 hashes to provide the 16 byte key which lets you use non-exact keys.

Optional salt used to compute a hash for the encryption key.

IV Vector for AES encryption. Should be 16 characters/bytes.


DO wwEncryption

LOCAL loEnc as wwEncryption
loEnc = CREATEOBJECT("wwEncryption")

lcOrig = "Hello World"
? lcOrig

*** 32 byte key (works best with most formats)
lcKey = "12345678901234567890123456789012"
? lcKey
? LEN(lcKey)

*** Example using Default settings for TripleDES 
lcVal  = loEnc.EncryptString(lcOrig, lcKey)
? lcVal

lcOrig  = loEnc.DecryptString(lcVal, lcKey)
? lcOrig

*** TripleDES explicit
lcVal  = loEnc.EncryptString(lcOrig, lcKey, .F., "TripleDES", "ECB", "MD5")
? lcVal

lcOrig  = loEnc.DecryptString(lcVal, lcKey, .F., "TripleDES", "ECB", "MD5")
? lcOrig

*** AES Example

*** 16 byte IvKey
lcIvKey = "1234567890123456"

*** Key must be 16 or 24 bytes
lcKey2 = PADR(lcKey, 24)

lcVal  = loEnc.EncryptString(lcOrig, lcKey2, .F., "AES", "CBC","","",lcIvKey)
? lcVal

lcOrig  = loEnc.EncryptString(lcVal, lcKey2, .F., "AES", "CBC","","",lcIvKey)
? lcOrig

See also:

Class wwEncryption | wwEncryption::EncryptString | TripleDES Encryption Example | AES Encyrption Example

© West Wind Technologies, 1996-2024 • Updated: 08/14/2021
Comment or report problem with topic