Meine Implementierung von AWS Antrag Authentifizierung in Google Go langAWS anfordern Authentifizierung: Encode-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)
}
Ich gültige Ausgabe von Amazon bekommen, aber nur, wenn der Hash 'sha' enthält keine _ oder -
Arbeits
Arbeiten'WFKzWNQlZEyTC9JFGFyqdf8AYj54aBj5btxPIaGTDbM ='
Nicht HTTP/1.1 403 Forbidden SignatureDoesNotMatch
'h-FIs7of_CJ7LusAoQPzSWVt9hlXF_5gCQgedn_85lk ='
Wie kodieren ich die AWS3-HTTPS-Header, so dass es entweder Umstand funktioniert? Nur wenn es relevant ist, kopiere ich und kopiere die Ausgabe in cURL. Ich plane, die Anfrage in Google Go zu implementieren, sobald ich es zuverlässig funktioniert habe.
Plausibilitätsprüfung zu ändern: Sie haben laufen 'curl' mit' -V' nur um es zu überprüfen ist nicht curl Messing mit deinen Daten? –
Ich habe dies in Go implementiert und hatte kein Glück, ich bekomme die gleichen Fehler/Erfolg, wenn der Hash nicht _ –
enthält Hey, Entschuldigung für diesen alten Thread stoßen, aber ich versuche, dieses Auth-Token in einer anderen Sprache zu implementieren und ich versuche den Job von Hash zu verstehen. Ist es für das Salz? Ich verwende Objective-C. Prost ! –