Write a program that can do the following:
- Compress either a file or the contents of a user-specified directory, recursively, to a password-protected ZIP archive
- Decompress the content of a password-protected ZIP archive to a user-specified destination directory