java - 散列和保护传输中的数据
问题描述
我在 AWS 文档中遇到了以下关于保护传输中的请求数据的建议:
https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html
保护传输中的数据 为了防止在传输中篡改请求,一些请求元素用于计算请求的哈希(摘要),并将生成的哈希值作为请求的一部分包含在内。当 AWS 服务收到请求时,它会使用相同的信息来计算哈希并将其与您请求中的哈希值进行匹配。如果值不匹配,AWS 将拒绝该请求。
只是想知道篡改者不可能从更改的值中重新计算散列并用原始散列替换新散列,这样服务器就看不到请求有任何问题吗?
哈希是使用密钥创建的吗?并且篡改者将无法正确创建新的哈希?
我确定我在这里遗漏了一些东西。有人可以帮忙吗。
解决方案
这些签名由加密散列和秘密加密密钥组成。例如https://en.wikipedia.org/wiki/HMAC。这就是为什么你不能对数据进行调整并重新散列。
推荐阅读
- javascript - 使用 parcel 构建浏览器 - 如何不输出 CommonJS 或 ES 模块
- reactjs - 为什么 setState 只在函数式 setState 中打印出最终状态值?
- delphi - 使用 GET 时的 IdHTTP EIdHTTPProtocolException
- python - Pyspark Dataframe 复制列中先前的最大值(int 或 date)
- python - 安装python时出现问题
- python-3.x - 我开始为我的朋友做一个数学测验,但是 if 语句不起作用:(
- json - @typescript-eslint/member-ordering 不起作用
- postgresql - 将表从 AWS PostgreSQL 复制到 Redshift 的最佳方法
- javascript - Google Apps 脚本:YouTube 搜索不适用于位置参数
- node.js - Dialogflow 处理动态快速回复