gpt4 book ai didi

c# - 如何为 Windows 程序保存电子邮件/密码组合?

转载 作者:可可西里 更新时间:2023-11-01 09:57:23 26 4
gpt4 key购买 nike

我正在创建一个 Windows 服务,它必须以特定的时间间隔向不同的人发送电子邮件。我在需要安全连接的服务器上使用一个帐户。

我找到了这个引用:https://nimblegecko.com/how-to-store-login-details-securely-in-application-config-file/ 我试图实现的代码是这样的:

var configuration = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);

configuration.AppSettings.Settings["username"].Value = EncryptString("new username", configPassword);
configuration.AppSettings.Settings["password"].Value = EncryptString("new password", configPassword);
configuration.Save();

我的问题是将用户名和密码编码为固定文本似乎仍然会导致与硬编码相同的暴露,对吗?

任何帮助将不胜感激?

最佳答案

嗯...不要存储在 AppConfig 设置中。

如果您不能为此使用数据库(存储散列和加密字符串)为此获取一个新文件,您甚至可以保护它以仅允许服务用户帐户读取/修改它,或将其存储在服务配置文件中目录(其用户帐户配置文件目录)

我会使用比 xml 更容易阅读的 ini 文件结构来完成它,其中每一行都包含类似的内容

var mergedCredential = string.Format("{0}|{1}", "user@here.com" , "P@ssw0rd");
User1HashedCredentials=EncryptString("new username", mergedCredential);

我使用管道“合并”凭据,因为您可以阻止用户在用户名上使用它

解密时用“|”分割

var credentials = DecryptString("new username", User1HashedCredentials);
var splitted = credentials.Split('|');
Username = splitted[0]
Password = splitted[1]

ini文件示例:

[Users]

Count=5

[SendEmailSection]

User1=dsaa$#asdasd$#@rr==

User2=dggggjh7/sd$#@rr==

User3=dsaasd"/$%asdasd$#@rr==

User4=dsas/&"dasd$#@rr==

User5=dsAa&s3dasd$#@rr==

哪个更容易维护和修改。您甚至可以制作自己的专用 ini 阅读器/编写器阅读部分,以“=”分隔

关于c# - 如何为 Windows 程序保存电子邮件/密码组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com