ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

key must be 32 bytes | ActiveSupport::MessageEncryptor

f:id:jun9632:20200408095434p:plain

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バイトしか使わずに暗号/複合しているっぽい。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com