Encryption
openssl_get_cipher_methods:選擇哪一個?
呼叫時,
openssl_get_cipher_methods
我們會得到幾種密碼方法。我注意到其中一些方法具有相同的前綴,例如 AES-256-(CBC|CFB|CFB1) 或 IDEA-(CBC|CFB)。
我的問題是選擇哪一個:對於加密字元串或大文件,哪個最安全?我應該遵循什麼過程來正確加密數據?
IDEA 是具有 128 位密鑰大小和 64 位塊大小的分組密碼。AES-256 是一種更現代的分組密碼,密鑰大小為 256 位,塊大小為 128 位。對於大文件,AES 肯定有優勢。
至於操作模式:CBC、CFB和CFB1都是非認證操作模式。CFB1 是一種較舊的格式,主要用於其錯誤傳播屬性。這通常不再被認為是一個重要因素。所以讓我們關注CBC和CFB。CFB 可能是更安全的選擇。這是一種流式操作模式,不需要隨機 IV(只是一個唯一的 IV)。因為它是流模式,所以也不需要填充模式。
所以 AES-CFB 可能是上面最好的選擇。在協議中正確使用它當然是安全的。但最終,密碼和操作模式無法保護損壞的安全系統。所以安全程度取決於你的協議的細節。