解密字符串中的值

本文关键字:字符串 解密 | 更新日期: 2023-09-27 18:32:52

我有以下连接字符串string

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

将字符串传递给解密函数后,我将在下面使用它:

iDB2Connection.ConnectionString = connectionString;

我的问题是,解密连接字符串字符串中的值的最佳方法是什么?

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

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 时通常存在的database密钥。