Moja implementacja AWS żądanie uwierzytelnienia w Google Go langAWS Zapytanie Uwierzytelnianie: Koduje Header
package main
import "fmt"
import "crypto/hmac"
import "crypto/sha256"
import "time"
import "encoding/base64"
func main() {
AWSAccessKeyId := "MHAPUBLICKEY"
AWSSecretKeyId := "MHAPRIVATEKEY"
sha256 := sha256.New
time := time.Now().UTC().Format(time.ANSIC)
hash := hmac.New(sha256, []byte(AWSSecretKeyId))
hash.Write([]byte(time))
sha := base64.URLEncoding.EncodeToString(hash.Sum(nil))
fmt.Println("Date", time)
fmt.Println("Content-Type","text/xml; charset=UTF-8")
fmt.Println("AWS3-HTTPS AWSAccessKeyId=" + AWSAccessKeyId + ",Algorithm=HmacSHA256,Signature=" + sha)
}
otrzymuję ważne wyjście z Amazon, ale tylko wtedy, gdy hash z 'Sha' nie zawierają żadnych _ lub -
robocza
'WFKzWNQlZEyTC9JFGFyqdf8AYj54aBj5btxPIaGTDbM ='
nie działa HTTP/1.1 403 Forbidden SignatureDoesNotMatch
'h-FIs7of_CJ7LusAoQPzSWVt9hlXF_5gCQgedn_85lk ='
Jak mogę zakodować AWS3-HTTPS nagłówek tak to działa w każdej sytuacji? Wystarczy, że to jest istotne, obecnie kopiuję i wklejam dane wyjściowe do cURL. Planuję zrealizować prośbę w Google Go, gdy już będę działał niezawodnie.
sanity: czy uruchomić 'curl' z' -V' żeby go sprawdzić nie zwijają Messing z twoimi danymi? –
Skończyłem wdrażanie tego w Go i nie miałem szczęścia, otrzymuję te same błędy/sukcesy, gdy hasz nie zawiera _- –
Hej, przepraszam za wybieranie tego starego wątku, ale próbuję zaimplementować ten token Auth w innym języku i próbuję zrozumieć pracę hash.Write? Czy to dla soli? Używam Objective-C. Twoje zdrowie ! –