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

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

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

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

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

最好,蒂埃里

我和乔恩同意。 散列是单向的,也就是说,两个电子邮件地址可以共享相同的散列,尽管通常不太可能。 它的设计并不是“解码”,而是加密 ( 如何使用它们的答案 )。 关键是您可以根据您已有的电子邮件地址或地址进行检查。

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

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

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

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

编辑:假设它是这里描述的相同类型的电子邮件哈希 ,它使用SHA-256 ,这是一种加密单向哈希。 这里散列的重点是,您将能够看到用户的任何联系人是否已经是您网站的用户(或其他任何用户),但不会以纯文本显示用户的联系人,这会侵犯他们的隐私。