Я использую следующие методы для шифрования ключа данных:
data_key = ActiveSupport::SecureRandom.random_number(99999999)
secret_key = Digest::SHA256.hexdigest(params[:user][:password])
encrypted_key = Encryptor.encrypt(data_key.to_s, :key => secret_key)
encrypted_key будет тогда равен, например:
"% \ x807 \ x1F \xFE.N \ xEC \ x85 \ x04 \ xEA \ xED (\ xD6 \ xFC \ xC9 "
Если я попытаюсь сохранить это в своей базе данных MySQL, используя:
Key.create(:encrypted_key => encrypted_key)
Единственное значение, которое сохраняется в столбце: encrypted_key:
%
Я пробовал другое:
"2T`E \ xBDP \ x12 \ x81 \ x00U \ x92 \ xFE \ x1A \ xDC = \ xA4"
Что хранится в столбце:
2T`E
Так что я думаю, что это \ сломать его.