Sample code for 30+ languages & platforms
PureBasic

Create a WinZip/7-Zip compatible AES Encrypted Zip

See more Zip Examples

Creates a WinZip compatible AES-encrypted .zip archive

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkZip.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    success = CkZip::ckNewZip(zip,"/myZipDir/aes.zip")
    If success <> 1
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        ProcedureReturn
    EndIf

    ; Set properties to indicate that the Zip should be
    ; AES encrypted.

    ; A value of 4 indicates WinZip compatible AES encryption.
    CkZip::setCkEncryption(zip, 4)

    ; Key length can be 128, 192, or 256 bits.
    CkZip::setCkEncryptKeyLength(zip, 128)

    ; Set the password for AES encryption:
    CkZip::setCkEncryptPassword(zip, "myPassword")

    ; Add a directory tree to be zipped.  (The files
    ; are not compressed at this point -- only references
    ; to the files and directories are added to the zip object.)
    recurse.i = 1
    success = CkZip::ckAppendFiles(zip,"c:/temp/a/*",recurse)
    If success <> 1
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        ProcedureReturn
    EndIf

    ; Create the encrypted zip ("/myZipDir/aes.zip")
    ; The path of the zip is what was originally passed
    ; to the NewZip method (above).  
    success = CkZip::ckWriteZipAndClose(zip)
    If success <> 1
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        ProcedureReturn
    EndIf

    Debug "Created AES Encrypted Zip."


    CkZip::ckDispose(zip)


    ProcedureReturn
EndProcedure