我正在阅读如何在两个网站之间实施单点登录,并遇到了这个示例http://dev.assistly.com/docs/portal/multipass。基本上,一个站点传递加密的JSON哈希,其中包含用户ID,登录到期和一些其他客户信息。使用站点密钥作为密码创建散列,使用api密钥作为salt。
据我了解,哈希算法以一种方式工作。例如,站点#2可以散列相同的值并将结果与站点#1传递的散列进行比较,以确定它是否是真实的&有效。但是,站点#2无法反转站点#1传递的散列值,以确定使用了哪些值。
这是我的问题。在我链接到上面描述的SSO示例中,所有信息可能在登录之前在两个站点之间共享。例如,两个站点都可能知道用户ID,密码,盐等。但是,我假设每个登录事件的到期日期时间值都不同。如果到期日期时间随着每次登录而变化,并且如果它不能预先在两个站点之间共享,那么站点#2是否不可能验证它从站点#1收到的哈希值?
我必须在理解其运作方式时遗漏一些东西。或许我做错了假设。请解释。谢谢!
答案 0 :(得分:0)
Assistly的术语有点令人困惑。当他们谈论哈希时,他们实际上是指JSON哈希,它只是值的映射......而不是加密哈希。您会看到他们也会引用双向AES加密,因此您可以加密数据并对其进行解密。