Próbuję wysłać SHA256 zaszyfrowany ciąg przez HTTP do serwera, gdzie chcę uwierzytelnić poprzez wykonanie skrótu SHA256 i weryfikację dwóch dopasowań. Do celów testowych używam tego samego ciągu znaków, jednak moje wyniki nie pasują do siebie. Czy to może być coś z domyślnymi schematami kodowania dla moich wywołań base64_encode? Dzięki.SHA256 w Go i PHP daje różne wyniki
W PHP robię:
$sha = hash("sha256", $url, true);
$sha = base64_encode(urlencode($sha));
A idź robię
//convert string to byte slice
converted := []byte(to_hash)
//hash the byte slice and return the resulting string
hasher := sha256.New()
hasher.Write(converted)
return (base64.URLEncoding.EncodeToString(hasher.Sum(nil)))
upewnić oba łańcuchy są absolutnie identyczne przed rozpoczęciem pracy nad nimi. możesz mieć ukryty znak (linebreak, space, tab, etc ...) na końcu w jednym z języków, który całkowicie zmieni wartość hash. –
Upewnij się, że używasz tego samego kodowania ciągów znaków. – SLaks
Używam słowa "test" na stałe po obu stronach, aby się upewnić, że nadal nie działa. – user387049