mia implementazione di AWS richiesta di autenticazione in Google Go langAWS richiesta di autenticazione: 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)
}
ricevo uscita valida da Amazon, ma solo quando hash il 'sha' non contiene _ o -
lavoro
'WFKzWNQlZEyTC9JFGFyqdf8AYj54aBj5btxPIaGTDbM ='
non funziona HTTP/1.1 403 Forbidden SignatureDoesNotMatch
'h-FIs7of_CJ7LusAoQPzSWVt9hlXF_5gCQgedn_85lk ='
Come faccio a codificare l'AWS3-HTTPS intestazione in modo che funziona in entrambe le circostanze? È incassile, è rilevante, attualmente sto copiando e incollando l'output in cURL. Ho intenzione di implementare la richiesta in Google Go una volta che ho funzionato in modo affidabile.
sanità mentale: avete eseguito '' curl' con -V' solo per controllare che non è ricciolo Messing con i tuoi dati? –
Ho finito per implementare questo in Go e non ho avuto fortuna, sto ottenendo gli stessi errori/successi quando l'hash non contiene _01 –
Ehi, scusa per aver battuto questo vecchio thread ma sto cercando di implementare questo token di autenticazione in una lingua diversa e sto cercando di capire il lavoro di hash.Write? È per il sale? Sto usando Objective-C. Saluti ! –