Sample code for 30+ languages & platforms
PureBasic

Encrypt / Decrypt a File and Verify it has not Changed

See more Encryption Examples

Demonstrates how to encrypt and decrypt a file, and verify it has not changed.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCrypt2.pb"
IncludeFile "CkFileAccess.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This 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, 128)
    CkCrypt2::setCkPaddingScheme(crypt, 0)

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

    keyHex.s = "00010203040506071011121314151617"
    CkCrypt2::ckSetEncodedKey(crypt,keyHex,"hex")

    dataFile.s = "qa_data/zips/HBIQ040615300005.ZIP"
    outFile.s = "qa_output/HBIQ040615300005.enc"
    outFile2.s = "qa_output/HBIQ040615300005.ZIP"

    success = CkCrypt2::ckCkEncryptFile(crypt,dataFile,outFile)
    success = CkCrypt2::ckCkDecryptFile(crypt,outFile,outFile2)

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

    bEqual.i = CkFileAccess::ckFileContentsEqual(fac,dataFile,outFile2)
    If bEqual <> 1
        Debug "Decrypted file not equal to the original."
    Else
        Debug "Success."
    EndIf



    CkCrypt2::ckDispose(crypt)
    CkFileAccess::ckDispose(fac)


    ProcedureReturn
EndProcedure