Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保护代码c#电子邮件客户端中的密码_C#_Security_Email_Passwords_Client - Fatal编程技术网

如何保护代码c#电子邮件客户端中的密码

如何保护代码c#电子邮件客户端中的密码,c#,security,email,passwords,client,C#,Security,Email,Passwords,Client,我正在为我兄弟的公司建立一个网站。网站上最重要的元素是邮件功能。访客可以使用该系统向我兄弟发送电子邮件,这一点很重要。所以我用了这个代码: message.From = new MailAddress("someemail@somedomain.com"); message.To.Add(new MailAddress("emailaddress")); message.CC.Add(new MailAddress("emailaddress")); SmtpClient client = ne

我正在为我兄弟的公司建立一个网站。网站上最重要的元素是邮件功能。访客可以使用该系统向我兄弟发送电子邮件,这一点很重要。所以我用了这个代码:

message.From = new MailAddress("someemail@somedomain.com");
message.To.Add(new MailAddress("emailaddress"));
message.CC.Add(new MailAddress("emailaddress"));
SmtpClient client = new SmtpClient("smtp.live.com", 587);
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("emailaddress","password");
client.Send(message);
代码运行良好,但有一个问题:我需要填写密码,我不想这样做。有没有一种方法可以使用MD5哈希(或其他某种加密)或其他方法来保护我的密码?

SMTP(协议基础电子邮件)要求以纯文本形式提供密码

您已经在保护通信通道,这将防止截获在线上的电子邮件密码

您可以将密码本身放入一个文件夹中,以保护其处于静止状态


最后,考虑一个仅用于此目的的帐户。将该帐户的电子邮件转发到您兄弟的帐户。如果密码被泄露,请删除该帐户并创建一个新的转发帐户。

可以在app.config或web.config中设置
System.Net
smtp电子邮件对象的详细信息


如果在配置文件中设置密码,则可以加密该部分,以防止草率读取密码。但最终需要以字符串形式提供密码。

感谢您提供此信息,是的,我已经考虑过使用一个只用于向我兄弟发送电子邮件的帐户。@EricJ.NET 4版本的有一个构造函数,它的密码是a-你是说如果SMTPClient需要纯文本密码,它就不能用于SMTPClient吗?(我没有试过,我只是感兴趣)@Bridge:NetworkCredential用于“基于密码的身份验证方案中的凭据,如basic、digest、NTLM和Kerberos”。我不确定它是否适用于SMTPClient,但最终,纯文本将通过(希望是SSS安全的)线路传输,正如纯文本最终会通过网络进行基本的web身份验证(我知道NetworkCredential支持这种验证)。SecureString提供了额外的好处,即字符串在使用后不会在系统内存中逗留,而是被主动覆盖。如果服务器遭到黑客攻击,这有助于最大限度地减少暴露。