ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

viでファイルを暗号化(復号化)する

一時期ヒマだったので、man viとかして、なんか知らないことがないか探してみた。
まあ、知らないことだらけだったりするわけですが、暗号化機能ってのがあるのを初めて知りました。

以下の実行例は、

~                              VIM - Vi IMproved
~
~                               version 7.0.235
~                           by Bram Moolenaar et al.
~                 Vim is open source and freely distributable

で試しました。


-xオプション付きでviを起動する。

>vi -x hello.txt

すると、
Enter encryption key:

のように聞いてくるので、暗号化キーを入力する。

Enter same key again:

同じのをもっかい入れる。
すると、普通にファイルを作る画面になる。

  1
~
~
~
"hello.txt" [New File]                                        0,0-1         All

で、普通にファイル書いて、保存してみる。

  1 Hello, World!!
~
~
~
:w
  1 Hello, World!!
~
~
~
"hello.txt" [New][crypted] 1L, 15C written                    1,14          All

[crypted]の文言辺りが、ちゃんと暗号化された気配を感じさせます。
で、vi終わってファイルをのぞいてみる。

> more hello.txt
VimCrypt~01!ヨネキx・ム「檳em3S
>

くちゃくちゃです(汗

もっかいviで開いてみる。

> vi hello.txt

Enter encryption key:

-xオプションをつけなくても、暗号化キーを聞いてくる。
あえて間違ったキーを打ち込むと、、

  1 ~V^N、?~Oノ・゙ィ8ョ^_e
~
~
~
"hello.txt" [noeol][crypted] 1L, 15C                          1,1           All

やっぱりくちゃくちゃです(汗

で、ちゃんと開きなおして、別のファイルに保存してみる。

  1 Hello, World!!
~
~
~
:w hello2.txt
  1 Hello, World!!
~
~
~
"hello2.txt" [New][crypted] 1L, 15C written                   1,1           All

やっぱり[crypted]になる。

暗号化しないで保存するには、キーをクリアする。

:set key=

で、

:w

すると、

  1 Hello, World!!
~
~
~
"hello.txt" 1L, 15C written                                   1,1           All

となり、

> more hello.txt
Hello, World!!
>

となりました。