我有一个初级问题,似乎无法解决。我正在尝试生成一个随机密钥,在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==
感谢您的帮助!