我正在使用ActiveSupport::MessageEncryptor
(https://api.rubyonrails.org/v5.2.3/classes/ActiveSupport/MessageEncryptor.html#method-i-encrypt_and_sign)将加密值存储到数据库中。
问题是我的字段默认长度为varchar(255)
,在测试中,我收到了一个由306
个字符组成的4个字母的消息。
我只需要知道对varchar字段有什么限制,以确保在存储到数据库之前可以安全地使用这种加密方法?
我进行了上下搜索,我能找到的最好的方法是对默认加密算法的抽象分析,而不是对加密消息中可产生的最大字符数的分析。
更新: 这是我正在使用的代码:
key_base = Rails.application.secrets.secret_key_base
ActiveSupport::MessageEncryptor.new(key_base, key_base)
crypt.encrypt_and_sign("My Test String")
是否可能必须使用其他密码才能获得更可预测的长度?