key must be 32 bytes | ActiveSupport::MessageEncryptor
Rubyをバージョンアップしたら key must be 32 bytes と怒られました
下記の様な複合化の処理が合った時に、
def self.decrypt(password) secret_key = 'your-key_1234567890123456789012345678901234567890' ActiveSupport::MessageEncryptor.new(secret_key, 'aes-256-cbc') crypt.decrypt_and_verify(password end
32バイトにしないといけないんですね。 上記のように先頭から32バイトで成功します。
def self.decrypt(password) secret_key = 'your-key_1234567890123456789012345678901234567890' ActiveSupport::MessageEncryptor.new(secret_key[0..31], 'aes-256-cbc') crypt.decrypt_and_verify(password end
どうやら、もともと、頭の32バイトしか使わずに暗号/複合しているっぽい。
関連記事
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者:伊藤 淳一
- 発売日: 2017/11/25
- メディア: 大型本