Sample code for 30+ languages & platforms
PureBasic

Determine if a Zip is Encrypted or Password-Protected

See more Zip Examples

Determines whether or not a zip archive is AES encrypted or password-protected.

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

    ; An encrypted or password-protected zip can be opened
    ; without specifying the password.  However, the contents
    ; of the files cannot be unzipped without providing the correct
    ; password.

    success = CkZip::ckOpenZip(zip,"something.zip")
    If success <> 1
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        ProcedureReturn
    EndIf

    ; If the zip is password-protected, meaning that it uses
    ; the old (insecure) Zip 2.0 encryption, then the
    ; PasswordProtect property will be 1
    bPwdProt.i = CkZip::ckPasswordProtect(zip)
    If bPwdProt
        Debug "This zip is password-protected."
    EndIf

    ; If the zip is AES encrypted (WinZip compatible) then
    ; the Encryption property will be equal to 4.
    encValue.i = CkZip::ckEncryption(zip)
    If encValue = 4
        Debug "This zip is AES encrypted."
    EndIf

    ; If the Encryption property = 0, then the zip is NOT
    ; strong encrypted, and is either password-protected or
    ; entirely unencrypted, depending on the value of the
    ; PasswordProtect property.

    CkZip::ckCloseZip(zip)


    CkZip::ckDispose(zip)


    ProcedureReturn
EndProcedure