Sample code for 30+ languages & platforms
PureBasic

2-Key Triple DES (112 bits)

See more Encryption Examples

Demonstrates 2-Key Triple DES encryption (112-bit 3DES encryption).

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCrypt2.pb"

Procedure ChilkatExample()

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    crypt.i = CkCrypt2::ckCreate()
    If crypt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Specify 3DES for the encryption algorithm:
    CkCrypt2::setCkCryptAlgorithm(crypt, "3des")

    CkCrypt2::setCkCipherMode(crypt, "ecb")

    ; For 2-Key Triple-DES, use a key length of 128
    ; (Given that each byte's msb is a parity bit, the strength is really 112 bits).
    CkCrypt2::setCkKeyLength(crypt, 128)

    ; Pad with zeros
    CkCrypt2::setCkPaddingScheme(crypt, 3)

    ; EncodingMode specifies the encoding of the output for
    ; encryption, and the input for decryption.
    ; It may be "hex", "url", "base64", or "quoted-printable".
    CkCrypt2::setCkEncodingMode(crypt, "hex")

    ; Let's create a secret key by using the MD5 hash of a password.
    ; The Digest-MD5 algorithm produces a 16-byte hash (i.e. 128 bits)
    CkCrypt2::setCkHashAlgorithm(crypt, "md5")
    keyHex.s = CkCrypt2::ckHashStringENC(crypt,"secretPassword")

    ; Set the encryption key:
    CkCrypt2::ckSetEncodedKey(crypt,keyHex,"hex")

    ; Encrypt
    encStr.s = CkCrypt2::ckEncryptStringENC(crypt,"The quick brown fox jumped over the lazy dog")
    Debug encStr

    ; Now decrypt:
    decStr.s = CkCrypt2::ckDecryptStringENC(crypt,encStr)
    Debug decStr


    CkCrypt2::ckDispose(crypt)


    ProcedureReturn
EndProcedure