我想对我为需要发送用户和密码组合的任何移动应用程序构建的流程提出一些意见。我的想法是使用 AES-256 加密密码,生成随机密码和 IV 来生成密钥。这个想法是,当密码第一次生成时,它会将加密的密码和 IV 发送到服务器。IV 和加密密码将存储在服务器上,在 redis 数据库中,密钥和加密密码将仅在移动设备上(IV 不会存储在设备上)。因此,每次用户需要登录时,将加密密码和密钥发送到服务器,并存储 IV,服务器使用刚刚发送的密钥和 IV 解密发送的加密密码和保存在数据库中的密码已经在服务器上。
如果用户想要更改他们的密码,加密密码、密钥和 IV 会再次生成,如果它们匹配,也会发送旧密码(密钥和加密密码),值会在服务器中更新并向客户端发送通知也更新它们。
所有这些事务也将在 SSL 隧道内进行。
你认为这安全吗?如果不是为什么?以安全方式从移动设备到服务器加密/解密密码的任何其他选项?
问候。