Sample code for 30+ languages & platforms
PureBasic

Encrypt / Decrypt Secure Strings

See more Encryption Examples

Demonstrates how to use the EncryptSecureENC and DecryptSecureENC methods to encrypt/decrypt secure strings. These methods were added in Chilkat v9.5.0.71 (released January 2018).

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCrypt2.pb"
IncludeFile "CkSecureString.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ; Load the secure string with some text.
    secStr1.i = CkSecureString::ckCreate()
    If secStr1.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkSecureString::ckLoadFile(secStr1,"qa_data/txt/helloWorld.txt","utf-8")
    If success <> 1
        Debug "Failed to load helloWorld.txt"
        CkSecureString::ckDispose(secStr1)
        ProcedureReturn
    EndIf

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

    CkCrypt2::setCkCryptAlgorithm(crypt, "aes")
    CkCrypt2::setCkCipherMode(crypt, "cbc")
    CkCrypt2::setCkKeyLength(crypt, 128)
    CkCrypt2::ckSetEncodedKey(crypt,"000102030405060708090A0B0C0D0E0F","hex")
    CkCrypt2::ckSetEncodedIV(crypt,"000102030405060708090A0B0C0D0E0F","hex")
    CkCrypt2::setCkEncodingMode(crypt, "base64")

    ; Return the base64 encoded encrypted contents of secStr1.
    encryptedStr.s = CkCrypt2::ckEncryptSecureENC(crypt,secStr1)
    Debug "Encrypted string: " + encryptedStr

    ; Output:
    ; Encrypted string: qiq+IFhcjTkEIkZyf31V/g==

    ; Decrypt to secStr2:
    secStr2.i = CkSecureString::ckCreate()
    If secStr2.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkCrypt2::ckDecryptSecureENC(crypt,encryptedStr,secStr2)

    ; Access the contents of secStr2
    Debug "Decrypted string: " + CkSecureString::ckAccess(secStr2)

    ; Output:
    ; Decrypted string: Hello World!


    CkSecureString::ckDispose(secStr1)
    CkCrypt2::ckDispose(crypt)
    CkSecureString::ckDispose(secStr2)


    ProcedureReturn
EndProcedure