栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何对JSON对象进行密码哈希处理?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何对JSON对象进行密码哈希处理?

当为允许灵活性的任何数据格式计算散列时,该问题是一个常见问题。要解决此问题,您需要 规范化 表示形式。

例如,Twitter和其他服务用于身份验证的OAuth1.0a协议要求对请求消息进行安全哈希处理。为了计算哈希,OAuth1.0a说您需要首先按字母顺序排列字段,用换行符分隔它们,删除字段名(众所周知),并将空行用于空值。签名或哈希是根据该规范化的结果计算的。

XML DSIG以相同的方式工作-
在对XML进行签名之前,需要对其进行规范化。有一个提议的W3标准涵盖此内容,因为它是签名的基本要求。有人称它为c14n。

我不知道json的规范化标准。值得研究。

如果没有,您当然可以为您的特定应用程序使用建立约定。一个合理的开始可能是:

  • 按名称从大到小对属性进行排序
  • 所有名称上使用双引号
  • 在所有字符串值上使用双引号
  • 名称和冒号之间以及冒号和值之间没有空格或一个空格
  • 值和以下逗号之间没有空格
  • 所有其他空白都折叠为一个空格或一无所有-选择一个
  • 排除您不想签名的任何属性(一个示例是保存签名本身的属性)
  • 使用您选择的算法对结果进行签名

您可能还想考虑如何在JSON对象中传递该签名-可能建立一个众所周知的属性名称,例如“ nichols-
hmac”之类的名称,以获取哈希的base64编码版本。散列算法必须明确排除此属性。然后,JSON的任何接收者都可以检查哈希。

规范化表示不必是您在应用程序中传递的表示。只要给定任意JSON对象,就可以轻松生成它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号