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

时间:2011-03-04 18:51:49

标签: sql-server-2005 encryption asp.net-membership

我已经在这几周内自杀了,并且找不到可行的解决方案。这是我的情景:

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

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

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

我的问题是,是否可以在T-SQL中生成密码,比如使用EncryptByKey,我的提供商也可以解密?这意味着SQL中的键必须与我的machineKey配置中的键匹配。我不知道这是否可能。

非常感谢任何见解/帮助。

1 个答案:

答案 0 :(得分:1)

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