C# 解密字符串中的值

C# 解密字符串中的值,c#,encryption,C#,Encryption,我有以下连接字符串string: "DataSource=R7gIrRzkARUJsQBUYXKCPpH8MdqtQ5Sd+lt4kyBEZBY=; userid=weRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=; password=qcMxEGU75lJ1VD5OaaujnLzleR/7ZQDco3kddfwTOvI=;" 将字符串传递给解密函数后,我将在以下步骤中使用它: iDB2Connection.ConnectionString = conne

我有以下连接字符串
string

"DataSource=R7gIrRzkARUJsQBUYXKCPpH8MdqtQ5Sd+lt4kyBEZBY=; userid=weRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=; password=qcMxEGU75lJ1VD5OaaujnLzleR/7ZQDco3kddfwTOvI=;"
将字符串传递给解密函数后,我将在以下步骤中使用它:

iDB2Connection.ConnectionString = connectionString;
我的问题是,解密connectionString字符串中的值的最佳方法是什么

一种可能性是将字符串转换为
数据集
,并调用以下代码:

String connection = dsConnection.Tables[0].Rows[0]["connectionstring"].ToString();
SqlConnectionStringBuilder DBConfig = new SqlConnectionStringBuilder(connection);
string ConnectionString =
                "Data Source=" + Decrypt(DBConfig.DataSource)
                + ";Initial Catalog=" + Decrypt(DBConfig.InitialCatalog)
                + ";User ID=" + Decrypt(DBConfig.UserID)
                + ";Password=" + Decrypt(DBConfig.Password);
但我还没有想出如何成功地做到这一点

非常感谢您的帮助。

问题在于您的源代码是OleDb连接字符串,而不是SQL Server连接字符串。我建议改用
OleDbConnectionStringBuilder

var connectionString = "DataSource=R7gIrRzkARUJsQBUYXKCPpH8MdqtQ5Sd+lt4kyBEZBY=; userid=weRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=; password=qcMxEGU75lJ1VD5OaaujnLzleR/7ZQDco3kddfwTOvI=;";

var DBConfig = new OleDbConnectionStringBuilder(connectionString);

string ConnectionString =
            "DataSource=" + Decrypt(DBConfig["datasource"].ToString())
            //+ ";Initial Catalog=" + Decrypt(DBConfig.InitialCatalog)
            + ";UserID=" + Decrypt(DBConfig["userid"].ToString())
            + ";Password=" + Decrypt(DBConfig["password"].ToString());

您可以尝试将解密后的值从源字符串映射到Sql Server连接字符串,但我看不到一个
数据库
密钥,如果您通过
OleDb

连接到Sql Server时,该密钥通常会出现,这可能与不起作用的密钥重复?您会得到哪些错误或无效结果?加密连接字符串的解密或解析有问题吗?@DStanley如果我继续使用
DastSet
方法,我不确定如何正确地将连接字符串解析为我正在寻找的
DataSet
格式。将字符串添加到
DataSet
会给你带来什么好处?似乎您只是将字符串拉回来,将其传递给
SqlConnectionStringBuilder
@DStanley我同意。因此,我们可以跳过
DataSet
步骤。我的问题是,如何正确地从
string
转换到
SqlConnectionStringBuilder
?当我调用以下行时:SqlConnectionStringBuilder DBConfig=newsqlconnectionstringbuilder(“DataSource=r7girrzkarujsqbuyxkcph8mdqtq5sd+lt4kyBEZBY=;userid=weRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=;password=qcmxegu75lj1vd5oajnlzler/7zqdco3kdfwtovtovi=;”;我得到一个错误“关键字不受支持:'数据源'。”谢谢你,我相信这会起作用。现在我需要完成解密函数。关于你的答案,从学习的角度来看,你是怎么知道的;你是怎么知道的?我查阅了文档,意识到你的源字符串是用于OLEDB的,而不是SQL的,并作为一种选择进行了搜索。