Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将联系人的Live API响应中的哈希转换为文本_C#_Javascript_Api - Fatal编程技术网

C# 如何将联系人的Live API响应中的哈希转换为文本

C# 如何将联系人的Live API响应中的哈希转换为文本,c#,javascript,api,C#,Javascript,Api,我集成了Live JS api来获取用户的实时联系人,它以哈希格式(email\u hash)返回电子邮件。 如何使用javascript或c#.net将其转换为可读文本 非常感谢 我不熟悉Windows Live SDK,但哈希通常是单向表示。例如,对一个电子邮件地址的前两个字母进行哈希运算——非常糟糕,但仍然是哈希运算。散列(在加密术语中)的要点是能够在不存储/显示原始数据的情况下快速确定两个源值是否可能相等 换句话说:假设我对我们正在讨论的哈希类型的看法是正确的,那么您将无法返回到原始电子

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

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

换句话说:假设我对我们正在讨论的哈希类型的看法是正确的,那么您将无法返回到原始电子邮件地址


编辑:假设它是相同的类型,它使用的是加密单向散列。这里散列的要点是,您可以查看用户的联系人是否已经是您网站的用户(或其他用户),但不必以明文形式透露用户的联系人,这将侵犯他们的隐私。

我同意Jon的观点。散列是单向的,也就是说,两个电子邮件地址可能共享同一个散列,尽管这通常不太可能。它不是设计用来“解码”的,这是加密()。关键是你要能够对照你已有的一个或多个电子邮件地址检查它

微软在他们的网站上有你想要的,也可能不是你想要的,但是你似乎在查询一个向你的网站提供了他的电子邮件地址的用户的联系人列表。然后,Microsoft允许您查看联系人列表,并对其电子邮件进行哈希处理。这样做是出于隐私考虑,所以你不能只收集某人联系人列表中的所有电子邮件


举一个如何在实践中实现它的例子,想想Facebook的好友查找功能。您提供一个电子邮件地址,接收一组散列电子邮件地址,然后与您自己的注册用户的散列电子邮件地址进行比较,以查找匹配项。(FB的实际实现可能与我的建议略有不同。)

我也遇到了同样的问题,我找到了解决方案,您只需将以下范围添加到您请求的范围列表中:“wl.contacts\u emails”

之后,我不得不从我的配置文件中删除我的应用程序,以重置所有作用域,并再次添加我的应用程序。(但若你们不想问所有使用你们的应用程序的人,我可以重置秘密令牌,强迫用户再次添加你们的应用程序)

最好的,
Thierry

不,实际上我指的是使用Windows Live SDK获取contcats,基本上它会返回电子邮件\u散列作为响应。如果您知道任何其他解决方案,请与我分享。thanks@Lucky:好的,我会编辑-但基本上是一样的:如果有东西返回哈希值,你将无法返回原始值。谢谢Bryan和Jon Skeet,正是这一点,我实际上是在尝试使用gmail、yahoo、hotmai、live和msn从特定用户的通讯簿中获取联系人。它适用于gmail和yahoo,但不适用于hotmail/live,因为你有这样的想法mentioned@Lucky:如果您试图获取实际电子邮件地址,则需要使用不同的API调用。我不知道这样的电话是否存在,但基本上你将无法从电子邮件散列中获得原始信息。
WL.login({scopes: ["wl.contacts_emails"]});