Create a Password Protected ZIP
Have you ever wanted to put very basic security (a passphrase) on a file? You can do so if you ZIP the file -- let's have a look at how you can password-protect a ZIP file!
Creating a password protected ZIP file from command line is done so via the following command:
# zip -er {file name to be created} {source directory or file}
zip -er my-generated-file.zip source-file.rtf
When someone tries to unzip the file, they'll be prompted for a password.
Don't be under any illusion that a password makes the ZIP file too secure: ZIP files don't self-destruct after a given number of attempts so a brute force effort to crack the password would ultimately be effective. If you do, however, want a very basic level of security for the contents of a file, this command will get you there.
![CSS @supports]()
Feature detection via JavaScript is a client side best practice and for all the right reasons, but unfortunately that same functionality hasn't been available within CSS. What we end up doing is repeating the same properties multiple times with each browser prefix. Yuck. Another thing we...
![fetch API]()
One of the worst kept secrets about AJAX on the web is that the underlying API for it, XMLHttpRequest, wasn't really made for what we've been using it for. We've done well to create elegant APIs around XHR but we know we can do better. Our effort to...
![Animated Progress Bars Using MooTools: dwProgressBar]()
I love progress bars. It's important that I know roughly what percentage of a task is complete. I've created a highly customizable MooTools progress bar class that animates to the desired percentage.
The Moo-Generated XHTML
This DIV structure is extremely simple and can be controlled...
![HTML5’s window.postMessage API]()
One of the little known HTML5 APIs is the window.postMessage API. window.postMessage allows for sending data messages between two windows/frames across domains. Essentially window.postMessage acts as cross-domain AJAX without the server shims. Let's take a look at how window.postMessage works and how you...