我正在考慮在Rails應用中使用attr_encrypted gem來進行字段級加密。我如何生成一個加密密鑰用於這個寶石?如何生成與attr_encrypted一起使用的加密密鑰
更新:
爲Encryptor的文檔,這是attr_encrypted使用的底層加密,規定如下(根據使用說明|基本):
secret_key = Digest::SHA256.hexdigest('a secret key')
encrypted_value = Encryptor.encrypt('some string to encrypt', :key => secret_key)
我猜想,a secret key
可以是任意隨機字符串,並且調用hexdigest
將根據它計算適當的固定長度的字符串。這是推薦的方式嗎?
我試着回答,但有一個問題:你想保護明文數據的人是誰(或者什麼樣的場景)? –
數據庫中的某些字段需要在休息時加密,主要用於非現場備份(場外備份系統無法訪問加密密鑰)。 –
在這種情況下,我猜想非現場系統可以訪問數據,但不能訪問配置或源代碼?我可能仍然會錯誤地配置存儲至少部分密鑰,並使用gem的能力來調用方法來獲取正確的密鑰,以此作爲提供該密鑰的方式。但是,如果源代碼的安全性與備份數據無關,每個字段的加密密鑰的硬編碼也是可行的。 –