Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Sql server 2005 使用将由ASP.NET成员资格提供程序解密的T-SQL加密密码_Sql Server 2005_Encryption_Asp.net Membership - Fatal编程技术网

Sql server 2005 使用将由ASP.NET成员资格提供程序解密的T-SQL加密密码

Sql server 2005 使用将由ASP.NET成员资格提供程序解密的T-SQL加密密码,sql-server-2005,encryption,asp.net-membership,Sql Server 2005,Encryption,Asp.net Membership,几个星期以来,我一直在为这件事拼命工作,却找不到可行的解决办法。以下是我的设想: 我有一个从外部数据库导入用户数据的DTSX包。然后在本地数据库中创建用户帐户和配置文件。还可以通过自定义ASP.NET成员资格提供程序创建用户。提供商必须能够对这两种类型的用户进行身份验证 在开发过程中,这一切都很好,因为密码是以明文形式存储的。然而,现在我们已经准备好发布了,提供者的密码格式必须设置为加密,因此通过DTSX创建的用户必须使用加密密码创建。(我希望密码是散列的,但客户要求密码是可恢复的)。真正的问题

几个星期以来,我一直在为这件事拼命工作,却找不到可行的解决办法。以下是我的设想:

我有一个从外部数据库导入用户数据的DTSX包。然后在本地数据库中创建用户帐户和配置文件。还可以通过自定义ASP.NET成员资格提供程序创建用户。提供商必须能够对这两种类型的用户进行身份验证

在开发过程中,这一切都很好,因为密码是以明文形式存储的。然而,现在我们已经准备好发布了,提供者的密码格式必须设置为加密,因此通过DTSX创建的用户必须使用加密密码创建。(我希望密码是散列的,但客户要求密码是可恢复的)。真正的问题似乎是在DTSX中创建可由ASP.NET成员资格提供程序解密的加密密码

我最初的解决方案是让DTSX调用一个CLR存储过程,该过程可以访问与提供程序相同的加密逻辑。我让它工作,但我们的客户不会启用CLR集成。那就是窗外。现在我正在调查其他选择。一种替代方法是简单地使用T-SQL的内置加密方法。但是如何共享用于加密/解密的密钥

我的问题是,有没有可能在T-SQL中生成一个密码,比如说使用EncryptByKey,我的提供者也可以对其进行解密?这意味着SQL中的密钥必须与machineKey配置中的密钥匹配。我不知道这是否可能


非常感谢您提供的任何见解/帮助。

为什么不在dtsx中使用脚本任务来加密用户密码?

从未找到解决问题的方法。做了一些完全不同的事情。