OpenSSLで共通鍵作成

1. 暗号化するデータの用意
$ echo hoge > file.txt

2. 共通鍵の作成
$ openssl rand -base64 32 > rand.txt
※-out rand.txtだとExtra arguments given.でエラーになる

3. データの暗号化
$ openssl enc -e -aes128 -kfile rand.txt -in file.txt -out file.aes128_64 -base64
$ cat file.aes128_64
U2FsdGVkX19QJLESvS5Z/08k+CWpOjXqe9GA08NuCzE=

4. データの複合化
$ openssl enc -d -aes128 -kfile rand.txt -in file.aes128_64 -base64
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
hoge

### 初期ベクトルを指定する方法
-iv: 初期ベクトル
-K: 秘密鍵
$ mkdir src
$ echo hello > src/file.txt
$ openssl enc -aes-128-cbc -in src/file.txt -out src/file.txt.enc -K 1234567890abcdef0123456789abcdef -iv 00000000000000000000000000000000
$ openssl enc -d -aes-128-cbc -in src/file.txt.enc -out src/file.txt.decrypted -K 1234567890abcdef0123456789abcdef -iv 00000000000000000000000000000000
※AES-128の秘密鍵と初期ベクトルは32桁の128bit