我正在開發一個HIPAA項目,並且它已經引起我的注意,我需要加密所有列或含有私人健康信息的列級別數據。這就是說我正在尋找在block_encryption_mode = aes-256-cbc中使用AES_ENCRYPT和AES_DECRYPT。它看起來像我需要爲表中的每一行唯一地有一個IV(初始化向量)。我將需要這個同樣的IV來加密和解密。我應該只是將它存儲在數據庫或其他內容的列中?MySQL CBC加密和存儲初始化向量
另外對於列類型,最好是使用varbinary/blob或HEX加密結果並將其放入varchar/text?
任何其他建議都非常歡迎保持數據儘可能安全。
如果您使用加密數據存儲密鑰,那麼您什麼都沒有做到。它相當於一個銀行保險庫,它的鎖組合在鎖上。加密不僅僅是您可以在營銷清單上覈對的東西。還有一大堆其他的東西需要處理,以至於加密/解密和存儲這些密文的實際機制是你的問題中最少的。 –
我永遠不會用數據存儲密鑰......這很愚蠢。 CBC需要一個密鑰(從未保存在數據庫中的Web應用程序中)和一個IV。記錄IV應該是隨機的和不同的。 –
@MarcB IV(初始化向量)不需要是保密的,通常也不是。 IV不是加密密鑰。 – zaph