【发布时间】:2011-11-08 08:24:23
【问题描述】:
我有两个独立的服务器(s1 和 s2),运行着两个独立的 Web 应用程序。用户在 s1 上通过身份验证,并通过单击链接被重定向到 s2。是否可以在不让用户再次输入他/她的凭据的情况下在 s2 上对用户进行身份验证?
我的第一个想法是使用两个服务器都知道的密钥加密密码,然后将加密字符串与请求一起传递。够了吗?有没有更聪明的方法来做这件事?
_________ __________
| s1 | GET (with encrypted pw)? | s2 |
| | -----------------------> | |
|_______| |________|
Authenticated Need to be authenticated
谢谢。
【问题讨论】:
-
那很好。您可以通过在 s2 中创建类似接口的 Web 服务来使其具有可重用性。
-
如果你知道密码(假设它是一个md5哈希),是否可以获得密钥?
-
md5 是相当弱的散列算法。它可以使用蛮力破解。改用 SHA256/SHA512。还要确保在密码中附加一个密钥,例如“MyPassword”+“ASuperSecretKey”,这样您就会受到保护
标签: c# asp.net authentication encryption