SQL Server
SQL Server
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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @zip int
EXEC @hr = sp_OACreate 'Chilkat.Zip', @zip OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- 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.
EXEC sp_OAMethod @zip, 'OpenZip', @success OUT, 'something.zip'
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @zip
RETURN
END
-- If the zip is password-protected, meaning that it uses
-- the old (insecure) Zip 2.0 encryption, then the
-- PasswordProtect property will be 1
DECLARE @bPwdProt int
EXEC sp_OAGetProperty @zip, 'PasswordProtect', @bPwdProt OUT
IF @bPwdProt
BEGIN
PRINT 'This zip is password-protected.'
END
-- If the zip is AES encrypted (WinZip compatible) then
-- the Encryption property will be equal to 4.
DECLARE @encValue int
EXEC sp_OAGetProperty @zip, 'Encryption', @encValue OUT
IF @encValue = 4
BEGIN
PRINT 'This zip is AES encrypted.'
END
-- 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.
EXEC sp_OAMethod @zip, 'CloseZip', NULL
EXEC @hr = sp_OADestroy @zip
END
GO