I created a script application that will create an password protected encrypted zip archive.
It works both as double clickable, where it asks for files, and drag and drop where you drop files on it.
It will ask for password, checking to make sure it doesn’t have spaces in it, 3 times.
enjoy
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
on run
local mfiles, fpaths, tmp
try
set mfiles to choose file with prompt "Choose files to create archive…" with multiple selections allowed
on error
return
end try
set fpaths to {}
repeat with i in mfiles
set tmp to quoted form of POSIX path of i
-- remove trailing "/" on folders
if text -2 of tmp is "/" then set tmp to text 1 thru -3 of tmp & "'"
set end of fpaths to tmp
end repeat
compressArchive(fpaths)
end run
on open mfiles
local fpaths, pwd, tmp
if (count mfiles) = 0 then return
set fpaths to {}
repeat with i in mfiles
set tmp to quoted form of POSIX path of i
-- remove trailing "/" on folders
if text -2 of tmp is "/" then set tmp to text 1 thru -3 of tmp & "'"
set end of fpaths to tmp
end repeat
compressArchive(fpaths)
end open
on compressArchive(fpaths)
local pb, pwd
set pb to true
repeat with i from 1 to 3
try
set pwd to text returned of (display dialog "Enter password to encrypt this archive…" default answer "")
on error
return
end try
if (pwd contains " ") then
(item (((i = 3) as integer) + 1) of {"Please try entering password again.", ""})
display alert "Error! Password cannot contain spaces." message (item (((i = 3) as integer) + 1) of {"Please try entering password again.", "Cancelling archive."}) as warning
else
set pb to false
exit repeat
end if
end repeat
if pb then return false
set text item delimiters to " "
do shell script "zip -er ~/Desktop/archive" & (random number from 1000 to 9999) & " -P " & pwd & " " & (fpaths as text)
set text item delimiters to ""
end compressArchive