ちょっとした機密情報(変な日本語)を渡すときみなさんどうやってるんでしょうか。
いろいろなやり方や思想があると思いますが、一様に手間だなーって思ってました。
まあセキュリティと運用はトレードオフなので、しかたないような気もするんですが、
もっとカジュアルに機密情報やり取りしたいぜ!と思って下記の暗号化のコマンドを作ってみました。
インストール
$ brew install ngc224/txtmsk/txtmsk
brewで入れられます
カジュアルですね
使い方
$ txtmsk -p
上記のオプションでまずキーチェーンにパスワードを登録します
暗号化も復号化もこの設定したパスワードで行います
なのでもうパスワードを打ち込む手間がかかりません!とてもカジュアルですね
というわけで、今のところはMacOSXでしか使えません!
暗号化する
$ echo "aaaaaaaaaaaaaaaaaaaa" | txtmsk
GFKm0AD9g0yyUdCc6cq44sX+D6CAyWnqzoxa4jU0rZdC4ZOc
単に標準入力でテキストを渡すと暗号化してくれます
ただこれだとヒストリに残るのでこんな感じでつかうといいかも
$ cat database.yml | txtmsk > database.yml.msk
復号化する
$ echo "GFKm0AD9g0yyUdCc6cq44sX+D6CAyWnqzoxa4jU0rZdC4ZOc" | txtmsk -d
aaaaaaaaaaaaaaaaaaaa
-d オプションをつけると復号化されます
暗号化の方式はAESです
golangにはビルドインで入っていました
詰まったところはパイプで使うコマンドとして作っていて、
$ txtmsk
とかしたときに標準入力の入力待ちでブロックされるのでどうしたもんか悩んでたのですが、
下記パッケージを使ったら
if terminal.IsTerminal(0) {
...
}
とかやって取れました。
すげー便利