Java 散列和保护传输中的数据

Java 散列和保护传输中的数据,java,amazon-web-services,security,tampering,Java,Amazon Web Services,Security,Tampering,我在AWS文档中遇到了以下关于保护传输中的请求数据的建议: 保护传输中的数据 为了防止请求在传输过程中被篡改,使用一些请求元素来计算请求的哈希(摘要),并将得到的哈希值作为请求的一部分。当AWS服务接收到请求时,它使用相同的信息来计算哈希值,并将其与请求中的哈希值进行匹配。如果值不匹配,AWS将拒绝该请求 只是想知道篡改器是否不可能根据更改的值重新计算哈希值,并用原始哈希值替换新的哈希值,这样服务器就看不到请求有任何问题 散列正在使用密钥创建吗?而篡改器将无法正确创建新的哈希 我肯定我错过了一

我在AWS文档中遇到了以下关于保护传输中的请求数据的建议:

保护传输中的数据 为了防止请求在传输过程中被篡改,使用一些请求元素来计算请求的哈希(摘要),并将得到的哈希值作为请求的一部分。当AWS服务接收到请求时,它使用相同的信息来计算哈希值,并将其与请求中的哈希值进行匹配。如果值不匹配,AWS将拒绝该请求

只是想知道篡改器是否不可能根据更改的值重新计算哈希值,并用原始哈希值替换新的哈希值,这样服务器就看不到请求有任何问题

散列正在使用密钥创建吗?而篡改器将无法正确创建新的哈希

我肯定我错过了一些东西。有人能帮忙吗

散列正在使用密钥创建吗


是的,这里提到的“散列”实际上是一个,创建它需要您的AWS秘密访问密钥。

这些签名由加密散列和秘密加密密钥组成。例如这就是为什么您不能处理数据并重新散列。

我在同一链接中有以下答案:签署请求要签署请求,您首先计算请求的散列(摘要)。然后使用散列值、请求中的一些其他信息和秘密访问密钥来计算另一个散列,即签名。然后通过以下方式之一将签名添加到请求中:1。授权标头。2.查询Param,因此基本上我们使用secret-access-key重新散列并将其添加到请求中。图书馆几乎可以完成所有的工作;如果可能的话,请避免使用v1 AWS Java SDK,我更喜欢使用jets3t进行S3操作。顺便说一句,这种AWS方法与基本相同,不同之处在于JWT有点冗长,但总体上是合理的,而AWS签名可能是AWS编程中最麻烦的一个问题。