Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%)
|
Witam
Mam pytanie. Musze zaszyfrowac string za pomoca RC4 - i nie bylo by tak zle, gdyby nie fakt - iz klucz jest szyfrowany sha1. php zwraca problem z dlugośćią stringa - sha daje 40 obslugiwany jest 32 a na php.net jestraczej srednia rada Cytat Avoid using string representations hashes - md5() or sha1() - because hex encoding uses a set of only 16 characters [0-9a-f], which is equivalent to 4 bits, and thus halve the strength of your encryption: 4 x 32 = 128-bit. a koniecznie klucz musi byc szyfrowany przez sha1 Jak rozwiazać taki problem?? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%)
|
Może czegoś tu nie rozumiem, ale jeżeli klucz jest szyfrowany przez sha1, to nic się nie da zrobić. Bo sha1 to funkcja hashująca i nie da się już odzyskać tego klucza. A klucz, jak sama nazwa wskazuje, jest w szyfrowaniu kluczowy (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) .
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%)
|
No moj blad (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) - w opisie postu napisane jest poprawnie. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Chodzi o to, ze klucz jest wlasnie tworzony przez sha1 ktora zdecydowanie jest funkcja hashujaca - jednak za kazdym razem zwraca identyczna wartosc dla danej zmiennej , jednak ja nie chce klucza odczytywac - bede korzystal z niego jush po hashowaniu - tylko to co za pomoca tego klucza zaszyfruje przez RC4
skrypt na php.net to jest cos takiego
a klucz normalnie hashujemy zdaje sie tak
Jak przerobic kod z php.net , aby dał sobie rade z zaszyfrowaniem $input metoda RC4 z takim wlasnie kluczem generowanym za pomoca sha1?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Delphi sobie dalo rade (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) i teraz musze sie meczyc (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ( zakladam oczywiscie ze wyniki szyfrowanie bede identyczne:P - prawda (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ) Pozdrawiam Ten post edytował Cathan 9.07.2005, 00:06:59 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%)
|
witam ...
albo mi się wydaje albo zmiana key na sha1(key) wystarczy żeby szyfrować przez hasło w sha1 ... potem wystarczy zmienić wywołanie mcrypt_generic($td, $input); na mcrypt_generic(MCRYPT_RC4, $input); i teoretycznie to wystarczy ... wszystko jest opisane w manualu. pozdrawiam |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%)
|
Dla zainteresownaych - info
DLEPHI ZWRACA CO INNEGO NIZ php (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) porazka orson - teoretycznie tak, ale w praktyce php wali komunikatem: Warning: mcrypt_generic_init() [function.mcrypt-generic-init]: Key size too large; supplied length: 40, max: 32 in Natomiast w delphi wszystko jest ok. Moral z tego taki - nie da sie dobrac do wpisow w bazie kodowanych przez delphi - a bynajmniej mnie ten temat przerosl (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ten post edytował Cathan 11.07.2005, 12:36:55 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 16.10.2004 Ostrzeżenie: (0%)
|
Nie ma czegoś takiego jak "DLEPHI ZWRACA CO INNEGO NIZ php". Program napisany w Delphi zwraca to co ma, czyli jak go zaprojektowano. Poszukaj innych implementacji algorytmów. (lub opcji w obecnych)
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%)
|
Moje zalozenie bylo takie, ze jesli w delphi inicjujemy string dla klucza z jakiejs zmiennej z pomoca sha1 i szyfrujemy za jego pomoca przez RC4 to algorytmy zarowno sha1 oraz RC4 sa takie same zarowno w php jak i delphi. Fakt ze w Delphi zostal uzyty komponent, jednak wyniki zwraqcane sa całkowicie inne. w php dostajemy straszne krzaki cos jak "qJóŤełĹ])WJr -" natomiast zwroty w delphi sa "cywilizowane" (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) i wygladaja np. tak "F9zx==", jak dla mnie sa to całkowicie inne rzeczy i nie ma opcji zeby jakkolwiek je porownac.
Po przeanalizowaniu dokladnie wszystkich procedur w komponentach w deplphi prawdopodobnie dalo by sie uzyskac taki sam wynik w php jednak nie niestety na to czasu, (ani chyba wiedzy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) Na szczescie pojawil sie plan B rozwiaznia problemu i jush wszystko jest O.K (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Pozdrawiam Ten post edytował Cathan 11.07.2005, 14:02:14 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%)
|
witam ...
ale w przykładzie który podałeś użyto innego szyfrowania niż RC4 ... może długość klucza jest uwarunkowana algorytmem (raczej na pewno) ... zmień funkcję na rc4 zaszyfruj coś (string 123) krótkim hasłem (string 123) i sprawdz czy to samo dostaniesz w delphi ... jeżeli tak to sprawdź na długim haśle (np. sha1('123'); ) i jeżeli nadal będzie że za długie to ... obcinaj (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ... przecież jeżeli w delphi obetniesz i w php obetniesz do 32 znaków to hasło jest takie samo ... więc wynik również będzie identyczny (musi - zasada szyfrowania: żeby dało się odszyfrować (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) a że wycinasz ileś znaków to przecież nie szkodzi ... pozdrawiam |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%)
|
Sprawdzałem
wlasnie w tym byl ze tak powiem główny problem klucz, który byl krotki dawał doskonale rade, nie waliło błedami itd. Problemy powstawały przy hashowaniu poprostu string robil sie za dozy jak dla klucza prywatnego, ktorego php ustaliło na nie wiecej niz 32 znaki. A co do Delphi to problem byl juz z przechwyceniem samego klucza. Dziwny ten jezyk (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nie moowiac jush o ograniczaniu go (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Kod ktory zacytowalem na poczatku, jak napisalem pochodzil z php.net nie chcialem w nim nic mieszac - z racji tego, ze wszystkie moje prooby obalenia 32 znakowego ograniczenia klucza padly na twarz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ciekaw jestem czy da sie cos takiego wogoole zrobic w php- tak ja w delphi z kluczem hashowanym - ale bez ograniczania stringa (co mimo wszystko jest dosc sprytne musze przyznac (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ). Pozdrawiam |
|
|
|
Post
#10
|
|
|
Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz |
Stary temat ale trafia się na niego przez google przy specificznym problemie, więc daje rozwiązanie:
Korzystając z: http://pear.php.net/package/Crypt_RC42/doc...ptRC42.php.html
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 14:25 |