2011-03-04 59 views
1

我必須加密包含每個記錄的三個字段(標記,用戶名和密碼)的列表。加密 - 整個文件還是單個字段?

這些將保存在JSON結構中,然後寫入存儲。

我的問題是,我應該加密整個文件還是應該加密單個字段,將加密的字符串轉換爲Base64並將這些加密的字段放入JSON文件中?

考慮到我不希望文件變得非常大(比如少於MB),我會一直閱讀它,並且目標平臺是Android,那麼最好的方法是什麼性能和安全性的條款?

回答

2

我建議加密整個文件。如果您逐字段加密,則攻擊者會看到數據是(數據標籤,用戶名,密碼)數組。這已經暴露了部分數據結構並削弱了加密。加密和解密整個文件甚至可能比單獨做每個字段更快,但對於您所談論的大小,我不認爲這是一個問題。

3

如果您一次加密少於整個數據塊,加密功能就會明顯減弱。所以加密整個文件。

2

一般來說,你應該加密整個文件。但是,如果你使用的是不好的實現,那麼這可能會對你有用。例如,如果您使用像RC4這樣的流密碼並重新使用該密鑰,那麼可以通過揭示prng流的各個部分來使用文件結構。這被用於WEP攻擊。但這裏的問題是實施不力。

簡而言之,使用隨機IV和Blowfish的CBC或CMAC模式或帶有s2k函數或隨機密鑰的AES-256。另外請記住,在沒有用戶訪問它的情況下,沒有地方可以隱藏android或iphone上的密鑰。

相關問題