C#使用加密密码进行电子邮件Ssl身份验证
我正在尝试使用gmail电子邮件发送多封电子邮件C#使用加密密码进行电子邮件Ssl身份验证,c#,gmail,networkcredentials,C#,Gmail,Networkcredentials,我正在尝试使用gmail电子邮件发送多封电子邮件 MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("gmail email ssl server"); mail.To.Add("email to send to"); mail.Subject = "Test Mai
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("gmail email ssl server");
mail.To.Add("email to send to");
mail.Subject = "Test Mail 2.0";
mail.IsBodyHtml = true;
mail.Body = body;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("email@email.com", "My Password");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
它工作得很好,但正如你已经知道的,C代码是可检索的。你知道gmail会接受的加密方法吗。
因此,我可以存储在代码中,只有加密的密码,我的电子邮件仍然容易受到攻击,但比现在要小得多。在环境级别而不是代码级别拥有此类数据可能是一个不错的选择。您可以尝试将密码和电子邮件存储在系统环境变量中,然后从代码中检索它。这样,只有运行代码的系统才能知道这些变量的值
这可能会很有帮助:当你考虑它时,它就像浏览器如何存储你的密码,不是吗?在此之前,谷歌认为plain就足够了。当然,正如链接文章所提到的,很容易就可以找到窃取密码的恶意软件。从技术上讲,这并不是一个很大的问题,读取DPAPI需要运行,所以它已经可以访问其他有趣的数据。你可以继续使用DPAPI,事实上,Chrome现在加密密码而不是使用DPAPI,但仍然通过DPAPI保留加密密钥,解密过程在中有明确描述,恶意软件和密码工具在Chrome更新后几天就更新了
因此,如果您想添加一个非常小的更改,使用通常就足够了。添加另一个加密只会迫使攻击者对你的应用程序进行反编译以反转加密,而你的应用程序仍然会到处泄漏密码。否则,如果您绝对不希望密码被公开,请创建一个Web服务,并告诉您的应用程序调用该服务。非常感谢!这是完美的,并帮助我在我的软件的其他部分!