Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] rozszeżenie mcrypt
Forum PHP.pl > Forum > Przedszkole
jessica99
mam następujący kod do szyfrowania danych:
po wykonaniu tej funkcji wywala mi błąd Call to undefined function mcrypt_encrypt()
mam odkomentowane odpowiednie rozszerzenie, zrestartowałam po tym apache'a, pommo to funkcja nadal nie działa sad.gif co jeszcze może być błędem??
  1. <?php
  2. class SymmetricCrypt
  3. {
  4. // Klucz do szyfrowania i odszyfrowywania
  5. private static $msSecretKey = "Od zmierzchu do switu";
  6. // Wektor inicjalizacji
  7. private static $msHexaIv = "c7098adc8d6128b5d4b4f7b2fe7f7f05";
  8. // Użyj algorytmu szyfrującego Rijndael
  9. private static $msCipherAlgorithm = MCRYPT_RIJNDAEL_256;
  10.  
  11. // Funkcja szyfruje łańcuch otwartego tekstu otrzymany w parametrze
  12. // i zwraca wynik w postaci szesnastkowej
  13. public static function Encrypt($plainString)
  14. {
  15. // spakuj $hexaIV do postaci dwójkowego łańcucha
  16. $binary_iv = pack("H*", SymmetricCrypt::$msHexaIv);
  17. // zaszyfruj $source
  18. $binary_encrypted_string = mcrypt_encrypt(
  19. SymmetricCrypt::$msCipherAlgorithm,
  20. SymmetricCrypt::$msSecretKey,
  21. $plainString,
  22. MCRYPT_MODE_CBC,
  23. $binary_iv);
  24. // Przekształć $binaryEncryptedString na postać szesnastkową
  25. $hexa_encrypted_string = bin2hex($binary_encrypted_string);
  26. return $hexa_encrypted_string;
  27. }
  28. // Funkcja odszyfrowuje szesnastkowy łańcuch otrzymany w parametrze
  29. // i zwraca wynik w postaci szesnastkowej
  30. public static function Decrypt($encryptedString)
  31. {
  32. // spakuj $hexaIV do postaci dwójkowego łańcucha
  33. $binary_iv = pack("H*", SymmetricCrypt::$msHexaIv);
  34. // przekształć łańcuch z postaci szesnastkowej na tablicę bajtów
  35. $binary_encrypted_string = pack("H*", $encryptedString);
  36. // Odszyfruj $binaryEncryptedString
  37. $decrypted_string = mcrypt_decrypt(
  38.  SymmetricCrypt::$msCipherAlgorithm,
  39.  SymmetricCrypt::$msSecretKey,
  40.  $binary_encrypted_string,
  41.  MCRYPT_MODE_CBC,
  42.  $binary_iv);
  43. return $decrypted_string;
  44. }
  45. } //koniec klasy
  46. ?>


oczywiscie sa to przykładowe klucze szyfrujace i odszyfrowujace
drPayton
  1. <?php
  2. if(function_exists("mcrypt_decrypt")) 
  3. echo "jest funkcja";
  4. else 
  5. echo "nie ma funkcji";
  6. ?>

Jaki rezultat?

Added:
Sprawdziłem u siebie: Klasa jest OK. Skoro wyrzuca Ci taki komunikat to znaczy że rozszerzenie mcrypt nie jest zainstalowane.
Added:
Jeśli serwer jest na windowsie, to oprócz php_mcrypt.dll potrzebne też jest libmcrypt.dll
jessica99
efekt jest taki ze wyswietla komunikat nie ma funkcji. Sprawdziłąm w windows/system32 jest i php_mcrypt i libmcrypt.dll.
drPayton
Sprawdź raz jeszcze winksmiley.jpg
U mnie wsio działa, klasa jest na 100% ok.
jessica99
Niestety sad.gif Nadal wywala mi błąd. W windows/system32 mam te same pliki co w /php libmcrypt.dll i php_mcrypt.dll w php.ini są odkomentowane odpowiednie linijki i NIC!!!!!NADAL BŁĄD!!!
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.