如何从联系人的Live API的响应中将哈希转换为文本
How to convert hash into text from the response of Live API for Contacts
我已经集成了Live JS api来获取用户的Live联系人,它以哈希格式返回电子邮件(email_hash)。我如何转换成可读的文本,使用javascript或c#.net很多谢谢!
我有同样的问题,我找到了解决方案,所有你需要做的就是将以下范围添加到你请求的范围列表:"wl.contacts_email "
WL.login({scopes: ["wl.contacts_emails"]});
这样做之后,我不得不从我的配置文件中删除我的应用程序以重置所有范围并添加第二次我的应用程序。(但如果你不想询问所有已经使用你的应用程序的人,我可以重置秘密令牌来强制用户再次添加你的应用程序)。
最好的,蒂埃里
我同意Jon的观点。散列是单向的,也就是说,两个电子邮件地址可能共享相同的散列,尽管这种情况通常不太可能发生。它不是被设计为"解码"的,那是加密(所以回答他们是如何使用的)。关键是你可以对照一个或多个你已经拥有的电子邮件地址。
微软在他们的网站上有一些示例代码,可能是也可能不是你要找的,但看起来你正在查询一个用户的联系人列表,他向你的网站提供了他的电子邮件地址。然后,微软允许你看到联系人的电子邮件列表。这样做是出于隐私考虑,这样你就不能收集某人联系人列表中的所有电子邮件。
关于如何在实践中实现它的一个例子,想想Facebook的好友查找功能。你提供一个电子邮件地址,接收一堆散列电子邮件地址,然后与你自己注册用户的散列电子邮件地址进行比较,寻找匹配。(FB的实际实现可能与我建议的略有不同。)我不熟悉Windows Live SDK,但散列通常是单向表示。例如,取电子邮件地址的前两个字母将是一个散列——一个非常糟糕的散列,但仍然是一个散列。散列(在加密术语中)的意义在于能够快速确定两个源值是否可能相等,而无需存储/显示原始数据。
换句话说:假设我对我们正在讨论的哈希类型是正确的,那么您将无法返回到原始电子邮件地址。
编辑:假设它与这里描述的电子邮件哈希相同,它使用SHA-256,这是一种单向加密哈希。这里散列的目的是让您能够看到用户的联系人是否已经是您网站的用户(或其他),但不会以纯文本形式显示用户的联系人,否则会侵犯他们的隐私。
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- AngularJS:获取链接中没有哈希的查询字符串值
- 有没有一种漂亮的方法可以将列表/哈希数组转换为可用的字符串
- 将哈希插入 url 以将其转换为锚点
- 如何将 Python 字典转换为 JavaScript 哈希表
- jQuery Mobile URL在Android浏览器上将哈希(#)转换为%23
- Javascript正则表达式,用于将ruby哈希语法从1.8转换为1.9
- 将Javascript对象转换为Ruby哈希
- 如何将哈希值转换为数组
- 将长文本转换为数字(如哈希,md5),这将在PHP和JS中得到相同的结果
- Javascript到Perl数组/哈希转换
- 将普通javascript哈希转换为适当的对象
- 如何从联系人的Live API的响应中将哈希转换为文本
- 从c#到Javascript的哈希函数转换存在位数学问题
- 通过ajax传输哈希映射并转换为php数组
- 函数将URL哈希参数转换为对象(键值对)
- 流星:将电子邮件地址在服务器上转换为md5哈希,并在客户端上访问
- 在JavaScript中获取MD5哈希并将其转换为基64
- 将数组的数组重组为哈希数组并转换为JSON