Mac
zip
XLSX
zipcloak

Macで圧縮したくてエクセルファイルをそのままzipcloakしようとしたら暗号化できちゃって焦った

しょーもない感じの話なんですが。

 やりたかったこと

Macを使ってまして。
でも一般的(そろそろレガシー気味)なIT企業(笑)のシステムエンジニア(笑)であるところの僕としてはごくごく普通にエクセルファイルをzip圧縮して提出、なんてことを求められるわけです。

とりあえず編集自体はnumbersでなんとかしたんですけど、問題はzip圧縮。

特にパスワードを掛ける方法ですね。
これが地味なところで詰まったので、備忘を兼ねてメモしておきます。

圧縮してからzipcloak。

とりあえず、やりかたとしてはエクセルファイルを直接ではなく、圧縮してからzipcloakする形になります。

普通にエクセルファイルのコンテキストメニューから圧縮してできたzipファイルに対してzipcloak 圧縮したzipファイルのパスとterminalから叩き込みます。
そうするとパスワードを聞かれるので、入力するとzipファイルがパスワード付きのzipファイルに変換されます。

焦るポイント

まあここまでは普通に、単なるパスワード付きzipファイルの作成方法なんですが。

zipcloakはあくまでzipファイルにパスワードかけるだけなので、zip圧縮をするわけじゃないんですよね。
ちょっと僕、ここのところを勘違いしてまして。

そのせいでちょっと焦ることになりました。

どういうことかっていうと、他のファイルならちゃんとzipファイルを指定しろよってエラーを吐いてくれるんですけど、エクセルファイルは事実上のzipファイルなせいでzipcloakはxlsxファイルに対しても効いちゃうんですよね。

オイオイオイ暗号化してるわxlsx
mbp:ziptest raging_alpaca$ ls
fuga.xlsx   hoge.zip
mbp:ziptest raging_alpaca$ zipcloak fuga.xlsx 
Enter password: 
Verify password: 
encrypting: _rels/.rels
encrypting: docProps/core.xml
encrypting: docProps/app.xml
encrypting: xl/workbook.xml
encrypting: xl/_rels/workbook.xml.rels
encrypting: xl/theme/theme1.xml
encrypting: xl/worksheets/sheet1.xml
encrypting: xl/sharedStrings.xml
encrypting: xl/styles.xml
encrypting: [Content_Types].xml
mbp:ziptest raging_alpaca$

……。

当然ながら、この状態だとnumbersとかopenofficeとかからも開けなくなります。

スクリーンショット 2018-10-06 20.14.38.jpg

焦ります。

拡張子をzipにすれば開けるのか?というとそういうわけでもないようで。
どうやって戻すかといえば、もう一度zipcloakを-dオプション付きで実行することで戻せます。

mbp:ziptest raging_alpaca$ zipcloak -d fuga.xlsx 
Enter password: 
decrypting: _rels/.rels
decrypting: docProps/core.xml
decrypting: docProps/app.xml
decrypting: xl/workbook.xml
decrypting: xl/_rels/workbook.xml.rels
decrypting: xl/theme/theme1.xml
decrypting: xl/worksheets/sheet1.xml
decrypting: xl/sharedStrings.xml
decrypting: xl/styles.xml
decrypting: [Content_Types].xml
mbp:ziptest raging_alpaca$ 

使うときは-Oをつけて、zipcloak -O [新しいファイル名] [圧縮したいファイル名]として使う方が無難かも……?
いや必要ないか。

mbp:ziptest raging_alpaca$ zipcloak -O fuga2.xlsx fuga.xlsx 
Enter password: 
Verify password: 
encrypting: _rels/.rels
encrypting: docProps/core.xml
encrypting: docProps/app.xml
encrypting: xl/workbook.xml
encrypting: xl/_rels/workbook.xml.rels
encrypting: xl/theme/theme1.xml
encrypting: xl/worksheets/sheet1.xml
encrypting: xl/sharedStrings.xml
encrypting: xl/styles.xml
encrypting: [Content_Types].xml
mbp:ziptest raging_alpaca$ ls
fuga.xlsx   fuga2.xlsx  hoge.zip
mbp:ziptest raging_alpaca$ 

追記

そのあと送ったら「文字化けしとーが」ということを言われてしまいました。

調べたら、Macのコンテキストメニューからの圧縮はMac用のフォーマットで固めるという罠があるらしいですね。

そのへんをどうにかするには素直にアプリに頼るのがよさそうです。
いろいろ出てるようですが、とりあえずググって最初に出てきたこちらを使うことにしました。

ドラッグドロップで圧縮できて、パスワードを数字4桁までで掛けられます。
適当に選んだ割には、僕の場合にはちょうどいい感じの作りでした。