共享和存储 IV 以进行 AES 加密/解密

Jer*_*ith 1 php encryption android aes

我目前在 Android 应用程序上对用户密码使用 AES-ECB 加密,但我必须将此应用程序的数据库连接到一个网站,用户可以在该网站上以与移动应用程序相同的方式注册和登录。

我读到 ECB 模式不安全,所以我想通过生成 IV 来使用 CBC。

在服务器端的 php 和应用程序中将 IV 作为常量存储在代码中(我也以这种方式存储密钥)是否安全?

如果没有,网站和移动应用程序是否有办法共享其 IV 来加密/解密用户密码?

或者,我可能选择了错误的加密算法,可能有一种更适合我的需求

小智 6

最佳实践是为每个加密创建一个新的随机 IV。IV 基本上是第一个块中使用的加密调用的种子。

每个 IV 都可以与密文一起安全地以明文形式存储,以便在解密密文时可用(用于加密的 IV 必须与用于解密的 IV 相同)。

  • 从密码派生哈希值的推荐方法是使用密钥派生函数,例如 PBKF2、bcrypt 或 scrypt。 (2认同)