Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SHA-256: różnica między ruby a C#
nasty
post 12.06.2009, 02:30:16
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)
signature = Base64::encode64(digest).chomp.gsub(/=+$/, '')
zwraca nam:
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);
            string friendlyHash = Convert.ToBase64String(rawHash);
zwraca mi:
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:45