圧縮されたアーカイブデータはzlibのinflate関数で展開するだけなので、特別難しいプログラミングは不要ですが、暗号化データの復元についてはそうはいかないので、ここではZipCryptoで暗号化されたデータを復号する方法について解説します。

 以前にも書きましたが、ZipCryptoはXORを使ったストリーム暗号形式なので、基本的に暗号化の逆のステップを踏めば、復号が可能です。暗号化の逆の手順を行う関数群は以下のようになります。

 なお、パスワードが正しくなくても、データは間違った形ではあるものの変換は普通に行われるため、入力されたパスワードが正しいのかどうかは、複合化データと、ヘッダに記載されているCRC32値の比較をすることで判定することになります。