我知道如何使用C#发送电子邮件。为此,我需要知道用户名和密码。
我具有有关如何使用哈希+盐存储密码,存储密码哈希的基础知识,因此,每次应用程序获取密码时,都要进行哈希并将其与生成的哈希值进行比较。这对登录很有用,因为用户键入密码即可使用该应用程序。
但是,要发送电子邮件,我要避免用户必须输入电子邮件的密码,因此登录解决方案不适用于这种情况。我想以某种方式将密码存储在数据库中,并且应用程序可以获取密码。问题是,如果我存储哈希密码,则应用程序将无法获取密码,因为哈希以一种方式进行加密。
因此,我想知道我可以使用哪些替代方式以安全的方式将密码存储在数据库中,并且应用程序可以获取密码来发送电子邮件。
谢谢。
答案 0 :(得分:1)
理想情况下,服务使用默认或常见电子邮件ID发送电子邮件。但是,在这种情况下,如果许多用户正在使用该服务来发送电子邮件,则应要求用户(第一次)登录该服务,然后可以生成一个会话(在指定的时间段内),并根据此会话发送电子邮件。会话密钥过期后,应强制用户重新登录。 因此,成功登录后,将为要使用此服务发送电子邮件的每个用户生成一个会话。
因此,这不需要在任何地方保存密码,因为建议不要以其原始形式或任何其他可以取回的形式保存密码。