【发布时间】:2013-07-29 23:20:07
【问题描述】:
我有一个关于将SecureString 作为 MySql-Connector 的连接字符串的一般性问题。如果我理解正确,SecureStrings 是在我的程序中存储字符串的“安全”方式。现在我有两个问题:
- 我必须在安装时读取密码(
TextBox是string,因此不安全) - 我要为 MySQL-Connector 建立一个连接字符串
string(再次不安全)
示例:
MySqlConnection con = new MySqlConnection();
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
builder.Add("SERVER", "loaclhost");
builder.Add("PORT", "3306");
builder.Add("DATABASE", "test_db");
builder.Add("UID", "root");
builder.Add("PASSWORD", "11235813"); //not the real password ;)
con.ConnectionString = builder.ConnectionString;
con.Open();
这让我想到了下一个问题:MySQL-Connector API 是“不安全的”,因为所有值都存储为纯文本 string。
最后一个问题:使用SecureString有什么意义吗?
在我看来,我可以在我的程序中的任何地方使用string。如果涉及到 MySQL,所有类型的加密(在我的程序中)都将毫无用处。
我的观点正确吗?还有其他方法吗?
最好的问候 亚历克斯
【问题讨论】:
-
ty,我已经读过这个。这并没有真正解决我的问题。我正在使用 WinForms(我将添加标签),因此没有 PasswordBox,我无法读取密码,因为
SecureString不支持该密码,并且 MySQL-Connector 使用多个strings 作为密码、连接字符串和以此类推。
标签: c# mysql winforms mysql-connector securestring