私には理解できないように見える初歩的な問題があります。データの暗号化/復号化に使用できる AES-256-CBC でランダム キーを生成しようとしています。
これが私がやっていることです:
require 'openssl'
cipher = OpenSSL::Cipher::AES256.new(:CBC)
cipher.encrypt
puts cipher.random_key
>> "\xACOM:\xCF\xB3@o)<&y!\x16A\xA1\xB5m?\xF1 \xC9\x1F>\xDB[Uhz)\v0"
これにより、上記の文字列が得られます。これは、過去に使用したキーとはまったく異なります。あなたが言うことができるように、私は暗号化に非常に慣れていませんが、文字列をさらに準備する必要があるかどうかを理解しようとしています. Rails でクイック ビューを作成したので、/generate に移動すると、ランダム キーを使用して単純な html ページがレンダリングされます。ページをレンダリングすることさえできず、無効な uTF8 について不平を言っていました。ページを表示する唯一の方法は、最初にキーを Base64 でエンコードすることでした。
私は愚かな何かが欠けていることを知っています。どんなアイデアでも素晴らしいでしょう。
編集: これは、Base64 でエンコードすると次のようになります。= 記号などを取り除く必要がありますか?
AES-128-CBC
Random Key: 0xdq+IZdmYHHbLC9Uv8jgQ==
Random IV: vp08d/nFGE3R8HsmOzYzOA==
AES-256-CBC
Random Key: BW0wY5fUkcwszV5GIczI+D45eFOz/Ehvw5XdZIavVOQ=
Random IV: D0pXdwQAqu+XSOv8E/dqBw==
助けてくれてありがとう!