![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Hello!
Wiem, że to może nie forum do tego, ale już wychodzę z siebię :S Chodzi o to, że mam pewną dokumentację techniczną do pewnego serwisu, gdzie muszę użyć jego REST-owych usług. Dokumentacja jest napisana pod kątem ruby, a ja piszę aplikację w C# ale to nie problem - da się zrozumieć. Problem jest w tym, że muszę wygenerować hash SHA-256 dla pewnego ciągu znaków i przekazać go w parametrze w formacie Base 64. W dokumentacji jest napisane, że ciąg znaków: Kod hn-Rw2ZHYwllUYkklL5Zo_7lWJVkrbShZPb5CD1expires=1893013926label[0]=any/somestatistics=1d,2d,7d,28d,30d,31d,lifetimestatus=upl,livetitle=a po wykonaniu(ruby) : Kod digest = Digest::SHA256.digest(string_to_sign) zwraca nam: signature = Base64::encode64(digest).chomp.gsub(/=+$/, '') Kod YRYuN2zO+VvxISNp/vKQM5Cl6Dpzoin7mNES0IZJ06U w mojej aplikacji mam identyczny ciąg znaków i po wykonaniu(C#): Kod byte[] rawHash = sha256.ComputeHash(rawRequest, 0, rawRequest.Length); zwraca mi: string friendlyHash = Convert.ToBase64String(rawHash); Kod Vw8pl/KxnjcEbyHtfNiMikXZdIunysFF2Ujsow8hyiw i też wywalam końcowe "=" jak wymaga tego specyfikacja techniczna. Próbowałem zmienić Encoding, w czasie zamieniania stringu na ciąg bajtów ale nic z tego. Ogólnie jest 3:30 nad ranem i przestaję myśleć, może ktoś mądrzejszy rzuci na to okiem? Dziękuję z góry! Ten post edytował nasty 12.06.2009, 02:31:51 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
W php dostaje wyniki jak dla C#
Cytat <pre><?php $str = 'hn-Rw2ZHYwllUYkklL5Zo_7lWJVkrbShZPb5CD1expires=1893013926label[0]=any/somestatistics=1d,2d,7d,28d,30d,31d,lifetimestatus=upl,livetitle=a'; $hsh = hash("sha256", $str, false); echo( "$hsh<br />"); echo( base64_encode($hsh) ); $res = ""; for ( $i = 0; $i < strlen($hsh); $i+= 2 ) { $a = $hsh{$i}; $b = $hsh{$i+1}; $h= $a.$b; $d = hexdec($h); var_dump($h); var_dump($d); $chr = chr($d); $res .= $chr; } echo( $res . "\n" ); echo( base64_encode($res) . "\n" ); sprawdz sobie http://en.wikipedia.org/wiki/Examples_of_S...#SHA-256_hashes (tlko ze tu dostajesz zapisz liczby w ASCII a nie bitowo/bajtowo) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Dobra, temat do usunięcia :-)
był problem w dokumentacji, oni sobie jakąś źle wyliczyli ten hash. Dupki! (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Już działa elegancko. Ten post edytował nasty 12.06.2009, 03:28:15 |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
To co mieli zle?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
mieli coś takiego:
Cytat hn-Rw2ZHYwllUYkklL5Zo_7lWJVkrbShZPb5CD1expires=1893013926label[0]=any/somestatistics=1d,2d,7d,28d,30d,31d,lifetimestatus=upl,livetitle=a
3. Generate an SHA-256 digest in base 64 format on this string, dropping any trailing '=' signs. This example produces a signature of: YRYuN2zO+VvxISNp/vKQM5Cl6Dpzoin7mNES0IZJ06U |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
No to wiem z pierwszego posta (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ale jak zrobic zeby zrobic to jak oni maja? tzn "poprawnie" |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Przekazując ten wyliczony przez mój program parameter do web service zadziałało i zmiana jego ręcznie w urlu wywalała błąd, że niepoprawny hesz. Czyli w sumie dobrze to obliczam a oni poprostu pomylili się wklejając to do dokumentacji.
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ok, widze ns SO.com o co chodzilo (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
tez wchodzisz na so? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 12:43 |