通过openssl_get_cipher_methods()
,PHP中提供了很多SSL密码:
每个密码的扩展名指定什么? (例如cbc,gcm等)
如果满足以下条件,则应使用所列的其中之一:
答案 0 :(得分:1)
每个密码的扩展名指定什么? (例如cbc,gcm等)
扩展名是mode of operation。大多数密码都是块密码,用于加密单个数据块。有几种方法可以安全地加密较大的数据(多个块)。该扩展名指示如何处理多个块。
最快(不太安全)的密码?
最佳做法(安全)密码?
在没有其他选择(不太安全)之前,请勿使用 ecb 模式。
几乎所有简单模式(cbc,ofb,...)在速度上都是等效的,理论上您可以使用它们中的任何一种。更重要的是,不要使用任何不安全的(过时的密码),例如DES。
我看到的最常用的是CBC模式,因为几乎所有工具都支持该模式。许多人没有意识到CBC密码是malleable,因此必须进行某种完整性检查。
gcm 模式包含完整性检查信息,因此从理论上讲它比较慢,但是密码将为您执行完整性检查。