Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: hash_hmac a hex_hmac_sha1
Forum PHP.pl > Forum > PHP
Qleer
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
Krótka piłka - wszędzie jest to samo kodowanie?
Qleer
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
A nie masz czasem białych znaków przy którymś ze stringów?
Qleer
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
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
Bo tak jak już napisałem nie mam dostępu do strony z JS, tylko kod PHP.
everth
A tej funkcji też używałeś (sorry za niedoczytanie ale coś często mi się zdarza)?
Qleer
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.