C#使用加密密码进行电子邮件的Ssl认证。

我想用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 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接受密码吗?所以我可以在代码中只存储加密密码,我的邮件仍然会受到攻击,但比现在要少很多。

解决方案:

仔细想想,这就像浏览器存储密码的方式,不是吗?直到 2020年2月,谷歌决定普通 DPAPI 是足够好的。当然,正如链接文章中提到的那样,它成了窃取密码的恶意软件的易选对象。从技术上来说,这并不是一个很强的问题,读取DPAPI需要运行 作为同一用户或上级用户,所以它已经可以访问其他有趣的数据了。你可以继续使用DPAPI,事实上,Chrome现在已经不使用DPAPI,而是对密码进行加密,但仍然通过DPAPI保留加密密钥,解密过程中清楚地描述了 这个StackOverflow答案,恶意软件和密码工具在Chrome更新后几天就更新了。

因此,如果你想添加一个非常小的变化,使用的是 DPAPI,因为它是 通常已经足够好了。增加另一种加密方式只会迫使攻击者反编译你的应用来反向加密,你的应用还是会把密码全部泄露出去。否则如果你绝对不想让密码暴露,可以创建一个webservice,并告诉你的应用程序调用服务来代替。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Axon -调用后的MessageHandlerInterceptor处理程序。

2022-9-8 19:37:16

未分类

获取特定时间范围内的数值,并排除SQL中的(大量)空白。

2022-9-8 19:37:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索