アニメ『ガンゲイル・オンライン』
将来こういうゲームできるようになるんでしょうね。
いつかプレイするとは思いますが、私はゲームの中のパソコンで、コマンドやプログラミングに夢中になってる気がします。
では、ガンということで、gunがつくコマンドでも探してみましょう。
takk@deb9:~$ apt-cache search gun ~省略~ gearhead - roguelike mecha role playing game, console version gearhead-data - data files for gearhead gearhead-sdl - roguelike mecha role playing game, SDL version golang-github-smartystreets-assertions-dev - fluent assertion-style functions grinder - Versatile omics shotgun and amplicon sequencing read simulator guncat - Catenates files while decrypting PGP-encrypted sections gunicorn - Event-based HTTP/WSGI server (Python 2 version) gunicorn-examples - Event-based HTTP/WSGI server (examples) gunicorn3 - Event-based HTTP/WSGI server (Python 3 version) python-gunicorn - Event-based HTTP/WSGI server (Python 2 libraries) python3-gunicorn - Event-based HTTP/WSGI server (Python 3 libraries) gunroar - 360-degree gunboat shooter gunroar-data - 360-degree gunboat shooter - game data ~省略~ takk@deb9:~$
気になる名前、guncatというパッケージがありました。
何でしょうか。インストールしてmanを確認。
takk@deb9:~$ sudo apt-get install guncat ~省略~ takk@deb9:~$ man guncat guncat(1) guncat - unencrypting file concatenation guncat(1) NAME guncat - catenates files, unencrypting pgp encrypted sections SYNOPSIS guncat [OPTIONS] [file(s)] [OPTIONS] - cf. section OPTIONS [file(s)] - optional files to process (cf. section INPUT FILE(S))
catのようにファイルを連結するコマンドのようです。ただし、連結する対象は、phpで暗号化されたファイルのようですね。
使ってみます。最初に実験用ファイル作ります。
takk@deb9:~/tmp$ seq 10 | split -dl5 takk@deb9:~/tmp$ head * ==> x00 <== 1 2 3 4 5 ==> x01 <== 6 7 8 9 10 takk@deb9:~/tmp$
平文のファイルx00とx01が、出来上がりました。
guncat で平文ファイルの連結をしてみます。
takk@deb9:~/tmp$ guncat x00 x01 1 2 3 4 5 6 7 8 9 10 takk@deb9:~/tmp$
暗号化されたファイルだけでなく、平文も連結できるんですね。
cat と同じです。
takk@deb9:~/tmp$ cat x00 x01 1 2 3 4 5 6 7 8 9 10 takk@deb9:~/tmp$
次は、暗号化されたファイルの連結をしてみましょう。
PGPのGNU実装版、gpgコマンドを使い、暗号化してみます。
鍵を用意します。
takk@deb9:~/tmp$ gpg --gen-key gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-generate-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: takk Name must be at least 5 characters long
短い名前にすると怒られましたので、長い名前にします。Yamada Taroにしました。
Real name: Yamada Taro Email address: takk@life-is-command.com You selected this USER-ID: "Yamada Taro <takk@life-is-command.com>" Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
OKなので、大文字のOを入力。
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key A8329FEEA3F4C82D marked as ultimately trusted gpg: revocation certificate stored as '/home/takk/.gnupg/openpgp-revocs.d/006F103930EA9106A814135CA8329FEEA3F4C82D.rev' public and secret key created and signed. pub rsa2048 2018-05-19 [SC] [expires: 2020-05-18] 006F103930EA9106A814135CA8329FEEA3F4C82D 006F103930EA9106A814135CA8329FEEA3F4C82D uid Yamada Taro <takk@life-is-command.com> sub rsa2048 2018-05-19 [E] [expires: 2020-05-18] takk@deb9:~/tmp$
途中、GUIが表示されて、パスフレーズを求められましたが、今回はguncatコマンドの確認なので、面倒なのでパスフレーズは何も入力せずに進めました。
さて、鍵ができましたので、最初に作ったファイルを暗号化します。
といっても、鍵ファイルそのものを生成する必要はありません。
指定するのは、ユーザ名と暗号化するファイル名だけで良いです。
takk@deb9:~/tmp$ ls x00 x01 takk@deb9:~/tmp$ gpg --armor -r "Yamada Taro" -e x00 gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 3 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 3u gpg: next trustdb check due at 2020-05-18 takk@deb9:~/tmp$
x01の方も暗号化します。
takk@deb9:~/tmp$ ^x00^x01^ gpg --armor -r "Yamada Taro" -e x01 takk@deb9:~/tmp$
暗号化されたファイルは、ascという拡張子になっています。
takk@deb9:~/tmp$ ls -1 x00 x00.asc x01 x01.asc takk@deb9:~/tmp$
中身はこのようになっています。
takk@deb9:~/tmp$ cat x00.asc -----BEGIN PGP MESSAGE----- hQEMA6myITGP+XO6AQgAuA3zKJRKY169aH78uDlw0Ml0GQ/Gg1PI7pJEdoBDnc1g cJxxudVbnso/p/Jh2n1/UhJ3jdohkCiZLnnAG4YGcgAFjN+8iQenRo8wfzfCjBSU ORZfPIEHKnwuXXkXUSA/6Qcy6rsa3tn9U0kYq3MIcRzObCJN+YE7SRw3xfuSap85 POjreXIxxE5JxwT5jKPatUz/lC8XpGI6y8P1J6SmhKrJvrqI6ekpaaMzZjD5xxho YT4SU4w/aQcxBuV9oz+eWmNHSm0WW+U7YCZESU1vGW/Cr14xtXQMnwZhVKNooV2v s80uM8V/kwkXuga3ScG+t/bUTv0NIuDPzhKYmAHrRtJIAZbiamWAavwnj7pzUOwO pk49CAFcxzYcSSDOKo5axBrCL3y+ur0IZAKOdhRdUUvV25qv51mfGb1/RskSH0HW QTurBmqBR9XY =9PEt -----END PGP MESSAGE----- takk@deb9:~/tmp$
元の平文のファイルを削除します。
takk@deb9:~/tmp$ rm x00 x01 takk@deb9:~/tmp$ ls x00.asc x01.asc takk@deb9:~/tmp$
では、guncatを使って、暗号されたファイルを連結してみます。
takk@deb9:~/tmp$ guncat x00.asc x01.asc 1 2 3 4 5 6 7 8 9 10 takk@deb9:~/tmp$
各ファイルが復号されて連結した結果が表示されました。
コメント