如何将哈希转换为Live API for Contacts的响应

时间:2011-09-10 06:55:32

标签: c# javascript api

我已经集成了Live JS api来获取用户的Live联系人,它以哈希格式(email_hash)返回电子邮件。 如何使用javascript或c#.net将其转换为可读文本 非常感谢!

3 个答案:

答案 0 :(得分:13)

我遇到了同样的问题并且找到了解决方案,您需要做的就是将以下范围添加到您要求的范围列表中:“wl.contacts_emails”

WL.login({scopes: ["wl.contacts_emails"]});

完成后,我不得不从我的个人资料中删除我的应用程序以重置所有范围并再次添加我的应用程序。 (但如果你不想问所有alerady使用你的应用程序的人,我可以重置秘密令牌以强制用户再次添加你的应用程序。)

最佳, 亨利

答案 1 :(得分:5)

我和乔恩同意。散列是单向的,也就是说,两个电子邮件地址可以共享相同的散列,尽管通常不太可能。它的设计不是“解码”,而是加密SO answer on how they're used)。关键是您可以根据已经拥有的电子邮件地址或地址进行检查。

微软在他们的网站上有some sample code,可能是您正在寻找的,也可能不是您想要的,但似乎您正在查询已向您的网站提供其电子邮件地址的用户的联系人列表。然后,Microsoft允许您查看其电子邮件散列的联系人列表。这样做是出于隐私原因,因此您不能只收集某人联系人列表中的所有电子邮件。

有关如何在实践中实施的示例,请考虑Facebook的Friend Finder功能。您提供一个电子邮件地址,接收一堆散列的电子邮件地址,然后与您自己的注册用户的哈希电子邮件地址进行比较,以查找匹配项。 (FB的实际实施可能与我建议的有点不同。)

答案 2 :(得分:3)

我不熟悉Windows Live SDK,但哈希通常是单向表示。例如,取一个电子邮件地址的前两个字母将是一个哈希 - 一个非常糟糕的,但仍然是哈希。散列点(以加密术语表示)是能够快速确定两个源值是否可能相等而不存储/显示原始数据。

换句话说:假设我说的是我们正在谈论的那种哈希,你将无法回到原始的电子邮件地址。

编辑:假设它与email hash described here相同,它使用SHA-256这是一种加密单向散列。这里的散列点是这样你就可以看到用户的任何联系人是否已经是你网站的用户(或其他什么),但是没有用纯文本显示用户的联系人,这会侵犯他们的隐私。< / p>