Я следуя этому примеруНевозможно воспроизвести AWS подпись из примера с использованием HMAC SHA256
http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
и пытается воспроизвести строку 64 символов для подписи, который они заявляют, как ...
aeeed9bbccd4d02ee5c0109b86d86835f995330da4c265957d157751f604d404
Я успешно подобрал шестнадцатеричный digeset для Canonical Request и положил, что строка StringToSign верна.
Последняя часть вычисляет подпись и подпись. Это где я бил дорожный блок, используя предоставленной функцию рубинового «getSignatureKey»
http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-ruby
signing_key = getSignatureKey secret_access_key, current_date, region, aws_service
signature = OpenSSL::HMAC.digest('sha256', signing_key, string_to_sign)
def getSignatureKey key, dateStamp, regionName, serviceName
kDate = OpenSSL::HMAC.digest('sha256', "AWS4" + key, dateStamp)
kRegion = OpenSSL::HMAC.digest('sha256', kDate, regionName)
kService = OpenSSL::HMAC.digest('sha256', kRegion, serviceName)
kSigning = OpenSSL::HMAC.digest('sha256', kService, "aws4_request")
kSigning
end
токовый выход для «подписи» эта странная последовательность символов.
ٻ. H53 е} WQ
Что мне не хватает, чтобы получить подпись равно ...
aeeed9bbccd4d02ee5c0109b86d86835f995330da4c265957d157751f604d404
Это близко, но есть три экземпляра, где отсутствует нуль. Я помещал X в следующий шестнадцатеричный код, чтобы продемонстрировать. Интересно, почему нули пропали? aeeed9bbccd4d02ee5c0109b86d86835f99533Xda4c265957d157751f6X4d4X4 vs –
Я вижу, что легко фиксируется, обновит мой ответ –