Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: szyfrowanie danych
Forum PHP.pl > Forum > PHP
jessica99
mam następujący skrypt:
  1. <?php
  2. class SymmetricCrypt
  3. {
  4. // Klucz do szyfrowania i odszyfrowywania
  5. private static $msSecretKey = "SECRECT KEY";
  6. // Wektor inicjalizacji
  7. private static $msHexaIv = "hdu8374hr96128b5d4b4f7b2fe7f7f05";
  8. // Użyj algorytmu szyfrującego Rijndael
  9. private static $msCipherAlgorithm = MCRYPT_RIJNDAEL_128;
  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.  
  29. // Funkcja odszyfrowuje szesnastkowy łańcuch otrzymany w parametrze
  30. // i zwraca wynik w postaci szesnastkowej
  31. public static function Decrypt($encryptedString)
  32. {
  33. // spakuj $hexaIV do postaci dwójkowego łańcucha
  34. $binary_iv = pack("H*", SymmetricCrypt::$msHexaIv);
  35. // przekształć łańcuch z postaci szesnastkowej na tablicę bajtów
  36. $binary_encrypted_string = pack("H*", $encryptedString);
  37. // Odszyfruj $binaryEncryptedString
  38. $decrypted_string = mcrypt_decrypt(
  39.  SymmetricCrypt::$msCipherAlgorithm,
  40.  SymmetricCrypt::$msSecretKey,
  41.  $binary_encrypted_string,
  42.  MCRYPT_MODE_CBC,
  43.  $binary_iv);
  44. return $decrypted_string;
  45. }
  46. } //koniec klasy
  47. ?>

niestety jest w nim błąd sad.gif
czy mógłby mi kto wskazać ten błąd??
nie ropoznaje funkcji mcrypt_encrypt, rozszerzenia php_mcrypt.dll które jest zainstalowane poprawnie(odkomentowane w php.ini, php_mcrypt.dll jest w windows/system32)
pojas
Sprawdź czy działa Ci ten przykład z manuala
  1. <?php
  2. $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  3. $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  4. $key = "This is a very secret key";
  5. $text = "Meet me at 11 o'clock behind the monument.";
  6. echo strlen($text) . "n";
  7.  
  8. $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  9. echo strlen($crypttext) . "n";
  10. ?>

Ma zwrócić:
Kod
42
64


Jednak mi zwraca:
Kod
Fatal error: Call to undefined function mcrypt_get_iv_size() in C:\Program Files\xampp\htdocs\test.php on line 2


Jeśli masz podobnie, oznacza to, że bardziej musisz się skupić na oprogramowaniu niż na samym skrypcie...
jessica99
Tak, niestety właśnie to mam:( Też właśnie już kombinowałam z tym skryptem z manuala. Sprawdzałam php.ini po kilka razy jest napewno odkodowane, ściągnęłam najnowszaą wersję tgo rozszezrzenia do windows/system32 i nic sad.gif nadal wyskakuje mi błąd.
Kicok
  1. <?php
  2.  
  3.  
  4. ?>



Odpalasz ten skrypt u siebie i:
1. Sprawdzasz, czy załadowane jest rozszerzenie mcrypt (nieco niżej będą szczegóły na temat każdego załadowanego rozszerzenia, poszukaj tam mcrypt)
2. Jeśli nie, to przewijasz okienko na samą górę i sprawdzasz co pisze obok: Loaded Configuration File. To jest właśnie plik php.ini który musisz edytować. Być może średnik usunęłaś w innym pliku ;]
jessica99
Serdeczne dzięki snitch.gif Właśnie to było problemem. php.ini który należało zmodyfikować nie znajdował się ani w windows/system32 ani w /php/.
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.