Sample code for 30+ languages & platforms
PureBasic

AES Encrypt String (utf-8 byte representation) and return Base64

See more Encryption Examples

Demonstrates how to AES encrypt the utf-8 byte representation of a string and return in base64 format.

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

    CkCrypt2::setCkCryptAlgorithm(crypt, "aes")
    CkCrypt2::setCkCipherMode(crypt, "cbc")
    CkCrypt2::setCkKeyLength(crypt, 256)
    CkCrypt2::setCkCharset(crypt, "utf-8")
    CkCrypt2::setCkEncodingMode(crypt, "base64")

    ivHex.s = "000102030405060708090A0B0C0D0E0F"
    CkCrypt2::ckSetEncodedIV(crypt,ivHex,"hex")
    keyHex.s = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
    CkCrypt2::ckSetEncodedKey(crypt,keyHex,"hex")

    encryptedStr.s = CkCrypt2::ckEncryptStringENC(crypt,"This is the original string")
    Debug encryptedStr

    ; Let's say we want to URL encode the base64 string..
    CkCrypt2::setCkCryptAlgorithm(crypt, "none")
    CkCrypt2::setCkEncodingMode(crypt, "url")
    urlEncoded.s = CkCrypt2::ckEncryptStringENC(crypt,encryptedStr)
    Debug urlEncoded

    ; Sample output:

    ;  q3fmgEqjqa9o//ZS6aPuh4Wtbrrxx/WOIQSKeVnesZg=
    ;  q3fmgEqjqa9o%2F%2FZS6aPuh4Wtbrrxx%2FWOIQSKeVnesZg%3D

    ; -------------------------------------------------------------------
    ; Now let's do the reverse...
    ; 

    ; We start with a string that is the binary encrypted data, base64 encoded, and then URL encoded.
    encBase64Url.s = "q3fmgEqjqa9o%2F%2FZS6aPuh4Wtbrrxx%2FWOIQSKeVnesZg%3D"

    ; We'll use the same crypt object.  If using a new instance of the crypt object,
    ; make sure *all* settings are identical:  the algorithm, cipher mode, key length, charset, encoding mode, IV, and secret key.

    ; Decode from URL...
    CkCrypt2::setCkCryptAlgorithm(crypt, "none")
    CkCrypt2::setCkEncodingMode(crypt, "url")
    encBase64.s = CkCrypt2::ckDecryptStringENC(crypt,urlEncoded)
    Debug encBase64

    ; Now decrypt...
    CkCrypt2::setCkCryptAlgorithm(crypt, "aes")
    CkCrypt2::setCkEncodingMode(crypt, "base64")
    originalStr.s = CkCrypt2::ckDecryptStringENC(crypt,encBase64)
    Debug originalStr


    CkCrypt2::ckDispose(crypt)


    ProcedureReturn
EndProcedure