openssl で暗号化すると便利なんだけど
暗号化をおこなったデータをそのままプログラムを経由して読みたいよね。やっぱり。
openssl で暗号化 → ruby で復号化
openssl enc -e -aes-256-cbc -salt -in test.json -out enc.json -pass password:my_pass
これで暗号化したファイルを、rubyでデコードしてみる
passphrase = "my_pass" data = open("enc.json", "r").read data = data.force_encoding("ASCII-8BIT") salt = data[8,8] data = data[16, data.size] cipher = OpenSSL::Cipher::Cipher.new("AES-256-CBC") cipher.decrypt cipher.pkcs5_keyivgen(passphrase, salt, 1 ) data = cipher.update(data) + cipher.final open("out.json", "w"){|f| f.write data }
ruby で暗号化 → openssl で復号化
ruby で暗号化したものを openssl で復号化する。
passphrase = "秘密秘密" data = open("plain.json", "r").read cipher = OpenSSL::Cipher::Cipher.new("AES-256-CBC") salt = OpenSSL::Random.random_bytes(8) cipher.encrypt cipher.pkcs5_keyivgen(passphrase, salt, 1 ) data = cipher.update(data) + cipher.final ## salted data = "Salted__" + salt + data open("enc.json", "w"){|f| f.write data }
openssl で復号化
openssl enc -d -aes-256-cbc -salt -in enc.json -out plain.json -pass password:秘密秘密