2013-03-26 364 views
2

我有一個函數,它使用AES加密我的用戶的密鑰文本輸入。並根據請求進行解密。什麼是維護AES加密的密鑰和IV的理想方式(截至目前在應用程序中是硬編碼的)。我每次都在數據庫中保存加密的數據。在頁面加載時,加密值從數據庫中檢索。該值通過單擊按鈕進行解密。有沒有什麼最好的我可以用更好的方式使用key和IV。AES加密密鑰和IV

回答

4

IV可以保存(或可以甚至可以「公開」/公開傳輸);它是no 'secret'。密鑰應該保密。所以你可以保存/傳輸你的數據,如<iv_here>;<encrypted_data_here>

參見wikipedia

初始化向量(IV)是用於由多種模式隨機化加密並因此產生即使同一明文進行加密多次不同的密文比特塊,而不需要較慢的重新鍵入過程。

一個初始化向量與一個關鍵字有不同的安全需求,所以這個IV通常不需要保密。但是,在大多數情況下,初始化向量在同一個密鑰下不會重用。

+0

因此,我基本上可以在我的應用程序中硬編碼IV和密鑰而不用擔心? – Eve 2013-03-26 09:24:21

+0

不;對於每個加密的數據塊,IV(通常)需要不同(隨機且獨特!)。您不希望對加密的每個數據塊使用相同的IV。 – RobIII 2013-03-26 09:25:08

+0

但是當我想在稍後的時間點解密時,我確實需要同樣的IV。那麼我應該維護它還有別的嗎? – Eve 2013-03-26 09:27:32