SecureRandom.hex () и SecureRandom.random_bytes () для генерации ключей в Rails с помощью attr_encrypted - PullRequest
0 голосов
/ 24 сентября 2019

документы для attr_encrypted говорят, что я должен сохранить результаты key = SecureRandom.random_bytes(32) на модели.Я думаю, что было бы более безопасно хранить этот ключ как переменную ENV.Я также привык запускать rake secret для моих переменных ENV.rake secret полагается на SecureRandom.hex().

Мне интересно две вещи:

  1. Правильно ли я предположить, что ключ шифрования должен храниться как переменная ENV?
  2. Есть ли разница в силе шифрования ключа между двумя методами SecureRandom?hex() против random_bytes()?

1 Ответ

1 голос
/ 24 сентября 2019

SecureRandom#hex определено здесь как:

def hex(n=nil)
  random_bytes(n).unpack("H*")[0]
end

, поэтому сгенерированные ими данные точно такие же, только формат отличается.

Что касаетсяключи шифрования, это зависит от вас и от способа размещения вашего приложения.Если он находится на сервере, которым вы управляете, то незафиксированный файл конфигурации - это хорошо (хотя подход с переменным окружением все еще работает, очевидно).Если вы используете хостинг, например, на Heroku, лучше использовать переменную окружения.

...