0

我有一个不寻常的设置。我在一台机器上有一个具有标准成员资格和加密密码的 Web 应用程序。在另一台机器上,我有一个 Windows 应用程序,我必须使用与 Web 应用程序中提供的相同的用户凭据。我需要能够从数据库中检索加密密码,然后在 Windows 应用程序上对其进行解密,以便能够使用它登录。(Windows 应用程序将通过 WCF 服务向网站询问与特定用户名匹配的加密密码)。

我找到的所有文章都告诉我从会员提供程序派生,但我的 Windows 应用程序中没有会员提供程序。并且导入它不是一种选择。

有什么办法可以从我可用的信息(知道机器密钥等)中解密密码吗?全部在我的窗口窗体应用程序中?

4

2 回答 2

1

你说:

Windows 应用程序将通过 WCF 服务向网站询问与特定用户名匹配的加密密码。

为什么不让 WCF 服务返回明文密码?显然,您的 WCF 服务需要使用适当的安全性(例如 HTTPS、net.tcp)。

为了安全起见,您可能需要适当地对调用者进行身份验证/授权,以确保您不会向任何人提供纯文本密码。但这样做可能比让客户端访问使他能够解密任何密码的加密密钥更安全。

于 2012-09-26T09:52:45.227 回答
0

解密的方法,但我没用过。

MembershipProvider.DecryptPassword

我同意乔+1。宁愿传递密码而不是密钥。

于 2012-09-26T12:35:11.670 回答