我正在阅读如何在两个站点之间实现单点登录,并遇到了这个示例http://dev.assistly.com/docs/portal/multipass。基本上,一个站点传递一个加密的JSON散列,其中包含用户id、登录到期时间和其他一些客户信息。哈希是使用站点密钥作为密码,使用api密钥作为盐创建的。
据我所知,散列算法是单向工作的。例如,站点#2可以散列相同的值,并将结果与站点#1传递的散列进行比较,以确定其是否可信和有效。但是,site #2无法反转site #1传递的散列值来确定使用了什么值。
这是我的问题。在我上面链接和描述的SSO示例中,所有信息都可能在登录之前在两个站点之间共享。例如,两个站点都可能知道用户id、密码、盐等。但是,我假设每次登录的过期日期时间值都不同。如果过期日期时间随每次登录而改变,并且不能在两个站点之间预先共享,那么站点#2不可能验证它从站点#1接收到的散列吗?
在我对这是如何工作的理解中,我一定遗漏了一些东西。或者我可能做了错误的假设。请解释一下。谢谢!
发布于 2012-04-13 22:23:21
Assistly的术语有点令人困惑。当他们谈到哈希时,他们实际上指的是JSON哈希,这只是值的映射……而不是加密哈希。你会看到他们还提到了AES加密,这是双向的,所以你会加密数据,他们会解密数据。
https://stackoverflow.com/questions/7649575
复制相似问题