- - PR -
cygwinで圧縮と暗号化を使いたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-01-18 04:14
書き込む場所を間違っているかも知れませんが、端末(windows上)で
コマンドラインから”圧縮”と”暗号化”したファイルを作って、 サーバ(UNIX)にFTPし、”復号”と”解凍”したいのですがうまくいきません。 サーバでエラー「uncompress 入力ファイルが壊れています」と なってしまいます。 <端末のコマンド> cat 入力ファイル | compress -f | ccrypt -u -K キー文字 > 出力ファイル1 <サーバのコマンド> cat 出力ファイル1 | crypt キー文字 | uncompress -f > 出力ファイル2 端末で圧縮(compress)だけ、暗号化(ccrypt)だけしたファイルであれば、 サーバで解凍(uncompress)、復号(crypt)はできました。 cygwinを使うのがなれていないので、端末での圧縮(compress)、暗号化(ccrypt) の方法が間違っているのでしょうか? ご教授よろしくお願いいたします。 |
|
投稿日時: 2008-01-18 12:26
cygwinは使ってないのでよく分かりませんが、たぶんcompress -f/uncompress -f
ではなく、compress -c/uncompress -cのような気がしますが.... |
|
投稿日時: 2008-01-19 09:58
blunderさん、ご回答いただきありがとうございました。
>compress -c/uncompress -cのような気がしますが.... ご指摘のパラメータでやってみましたが、同じエラーとなりました。 その後いろいろ試し、1回のコマンドでなく別々に処理することで サーバで正常に復号、解凍ができました。 <端末側> compress -f 対象ファイル #compressした対象ファイル.Z(拡張子付)を暗号化 ccrypt -u -K キー文字 対象ファイル.Z(拡張子付) > 出力ファイル <サーバ側> 投稿内容と同じ1回のコマンドでOKでした ※まだまだ勉強不足で恥ずかしい限りです。 あらためてまして、blunderさんありがとうごさいました。 |
|
投稿日時: 2008-01-19 20:26
compress/uncompressはもともと標準入力から読んでいるので、"-c"をつける
意味なかったですね。私のほうこそうっかりしていて、失礼しました。 しかしなぜパイプを通す形だとだめなのかは疑問ですね。 例えば cat 入力ファイル | compress >圧縮ファイル cat 圧縮ファイル | ccrypt -u -K キー文字 >暗号ファイル などとしたとき、どこかでおかしくなっていませんかね? あとcompressでなく、gzipだとうまくいくとか? ちょっと気になっただけです。もう解決ずみってことでしたら、気にしないで ください。 では。 |
|
投稿日時: 2008-01-22 00:04
blunderさん、貴重なご意見ありがとうございました。
私も気になっていましたので調査してみました。 確認1) ※入力ファイルとして「約200KB」の用意しました。 確認1)−1 コマンド:cat 入力ファイル | gzip > 圧縮ファイル(1) この場合、出力されたファイルが「約23KB」となりました。 確認1)−2 コマンド:cat 入力ファイル | compress > 圧縮ファイル(2) この場合、出力されたファイルが「約43KB」となり、 圧縮ファイル(1)の約倍になってしまいました。 上記圧縮ファイル(1)、(2)をサーバ側で「zcat」したところ ・圧縮ファイル(1)は、正常に表示されました。 ・圧縮ファイル(2)は、「corrupt input」となり表示できませんでした。 原因までは分かりませんでしたが、 ”cat”+”|(パイプ)”+”compress” だと問題があるようです。 確認2) compressのでなく、gzipで cat 入力ファイル | gzip | ccrypt -u -K キー文字 > 出力ファイルとして、 サーバ側で cat 出力ファイル | crypt キー文字 | uncompress -f > 出力ファイル(非圧縮、復号後) と処理して正常に解凍、復号できました。 まだまだ調査不足ですが、以上ご報告でした。 |
1