Encryption

openssl_get_cipher_methods:選擇哪一個?

  • April 3, 2017

呼叫時,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 可能是上面最好的選擇。在協議中正確使用它當然是安全的。但最終,密碼和操作模式無法保護損壞的安全系統。所以安全程度取決於你的協議的細節。

引用自:https://crypto.stackexchange.com/questions/45248