我正在使用 Alteryx R 工具进行一些 sha256 哈希计算,但我的输入之一遇到了麻烦。我正在尝试为以下输入生成 sha256 哈希:
POST\n/\n\ncontent_type:\nhost:dynamodb.us-east-1.amazonaws.com\nx-amz-date:20150707T201951Z\nx-amz-target:DynamoDB_20120810.CreateTable\n\ncontent_type;host;x-amz-date;x-amz-target\n09a8bcdeea1d20631f887235820bbff0a614679080a2e74a89ceb1a1bcc71b44
我的 r 函数是:
digest('POST\n/\n\ncontent_type:\nhost:dynamodb.us-east-1.amazonaws.com\nx-amz-date:20150707T201951Z\nx-amz-target:DynamoDB_20120810.CreateTable\n\ncontent_type;host;x-amz-date;x-amz-target\n09a8bcdeea1d20631f887235820bbff0a614679080a2e74a89ceb1a1bcc71b44', algo='sha256', serialize = FALSE)
R产生的散列是:
7fe2c3fc70134481217952f27bb5f4af95193645903ba3a6d4d7ad45c3adade1
这个值是不正确的。正确的值为:
9a493c643eeb736decc195a8e0e84e08f45a00bdbc21feaafa94be5f0f299af0
您可以看到下面使用 Python 计算的正确值;
我还使用 R 命令行工具计算了正确的值。这让我相信 Alteryx 以某种方式改变了输入,因此产生了错误的输出。有没有人遇到过这个或知道可能的解决方法。
我的 R 工具脚本如下:
其中 c =
POST\n/\n\ncontent_type:\nhost:dynamodb.us-east-1.amazonaws.com\nx-amz-date:20150707T201951Z\nx-amz-target:DynamoDB_20120810.CreateTable\n\ncontent_type;host;x-amz-date;x-amz-target\n09a8bcdeea1d20631f887235820bbff0a614679080a2e74a89ceb1a1bcc71b44