我繼承了一個與Facebook集成的Rails應用程序,並對從Facebook發送的令牌進行加密,將其保存爲用戶的身份驗證令牌。在Rails應用程序中優雅地重新加密令牌
由於各種原因,我最終更新了我的Ruby,並且發生了一些導致應用程序問題的Gemfile更改。最重要的是對attr_encrypted
的更改,它通過encrypted
gem處理該Facebook令牌在保存到數據庫時的加密。
問題是,該應用程序是活的並且已經有很多用戶,它有一個基本祕密加密密鑰,對於新更新的attr_encrypted
的安全標準而言太短。特別是,當我嘗試現在加密令牌時(現在進行測試;我沒有實時推送這些更改),則會拋出錯誤,指出密鑰需要爲32個字節。
問題:
有沒有人有更新到更安全的令牌的建議?如果我更改了令牌,我認爲會中斷令牌的解密,這樣我可能會永久失去讀取/使用數據庫中所有用戶身份令牌的能力。這顯然很有問題,所以我想在這裏仔細檢查我的想法。
我目前的想法是遷移:運行遷移,循環遍歷每個身份,使用我的舊密鑰解密存儲的令牌,然後使用新的更長的密鑰保存新加密的令牌。
然後我可以擺脫舊的密鑰沒有任何問題。對?任何人都可以想到關於attr_encrypted
寶石的特性或加密問題的任何問題,通常我可能沒有想到?
那麼,什麼是舊版本,有什麼新的版本? –