Qleer
12.08.2010, 21:49:27
Witam,
Mam swoisty problem. Istnieje bowiem biblioteka do JS posiadająca funkcję hashowania hmac_sha1 a dokładniej funkcja zwie się hex_hmac_sha1, funkcją odpowiadającą dla niej w php jest hash_hmac("sha1", ...) problem pojawia się gdy w funkcji hash_hmac w php dodamy polskie znaki.
Wszystko jest ok dla znaków a-Az-Z jednak w wypadku liter Polski ą,ś,ć ... funkcje podają różne wyniki. Chciałbym aby funkcja w php podawała wynik funkcji w JS ponieważ nie mam możliwości zmiany kodu źródłowego pliku JS.
Jakieś propozycje?
PS: Próbowałem iconv a różne sposoby od utf-8,ascii do iso ale nic nie dało.
erix
12.08.2010, 21:56:56
Krótka piłka - wszędzie jest to samo kodowanie?
Qleer
12.08.2010, 21:59:37
Piłka jest troszkę dłuższa... Kodowanie po stronie z której pobieram wartości do hashu jest w iso-8859-2, nawet jak zamieniłem kodowanie w skrypcie php na iso-8859-2 bo z przyzwyczajenia używałem utf-8 nic nie dało - przy polskich znakach nadal wyniki się różnią.
erix
12.08.2010, 22:06:21
A nie masz czasem białych znaków przy którymś ze stringów?
Qleer
12.08.2010, 22:10:32
Nie ma.. nawet sobie testuje oba skrypty i leci to tak:
hash_hmac("sha1", "a", "1096761695"); => a709b6086ffe1b22501db75acc60962789959e9c
alert(hex_hmac_sha1("1096761695","a")); => a709b6086ffe1b22501db75acc60962789959e9c
hash_hmac("sha1", "ą", "1096761695"); => 0bb79af1a93e7f82e63ea4d283fc7dd47863d64d
alert(hex_hmac_sha1("1096761695","ą")); => e9e8670e08b8b5ab49aa9c8c02b6439ac5d19654 - prawidłowe.
Może serio coś z kodowaniem ale pod iconv powinno grać a tu kicha i nawet iconv nie pomaga.
everth
12.08.2010, 22:31:24
Może to głupie ale skoro to kodowanie to czemu nie sprowadzisz sobie po obu stronach stringu do takiej samej postaci np. za pomocą urlencode()?
Qleer
12.08.2010, 22:41:54
Bo tak jak już napisałem nie mam dostępu do strony z JS, tylko kod PHP.
everth
12.08.2010, 22:51:49
A tej
funkcji też używałeś (sorry za niedoczytanie ale coś często mi się zdarza)?
Qleer
12.08.2010, 23:02:16
Cytat(everth @ 12.08.2010, 23:51:49 )

A tej
funkcji też używałeś (sorry za niedoczytanie ale coś często mi się zdarza)?
A jest większa różnica między mb_convert a iconv?
everth
12.08.2010, 23:19:58
Nie mam zielonego pojęcia. Obie robią praktycznie to samo z tym że iconv bazuje na libiconv - i zawsze miałem z nim problem. Poza tym masz w dziale funkcje do sprawdzania aktualnego kodowania stringu. Testuj - przecież to nie mój skrypt.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.