Jak zaszyfrować i odszyfrować ciąg znaków w PHP?

Jak Zaszyfrowac I Odszyfrowac Ciag Znakow W Php



Szyfrowanie to proces przekształcania danych w tajny kod lub format, który nie jest zrozumiały dla nikogo, kto nie ma klucza do jego rozszyfrowania. Deszyfrowanie to procedura pobierania tych informacji i przywracania ich do pierwotnego, czytelnego formatu. w PHP, szyfrowanie, I deszyfrowanie może służyć do ochrony danych wrażliwych, takich jak hasła, informacje o kartach kredytowych i inne dane osobowe.

The szyfrowanie algorytm powinien pobrać ciąg danych, które chcesz zaszyfrować, i użyć wybranej metody szyfrowania do zaszyfrowania danych. Algorytm powinien następnie zwrócić zaszyfrowane dane w formacie, który można przechowywać w bazie danych lub pliku.

Do odszyfrować danych, należy użyć tej samej metody szyfrowania do odszyfrowania danych, która została użyta do ich zaszyfrowania. Oznacza to, że będziesz musiał gdzieś przechowywać klucz, aby móc później użyć go do odszyfrowania danych.







Jak zaszyfrować i odszyfrować ciąg PHP?

Ciąg PHP może być zaszyfrowane I odszyfrowane używając openssl_encrpyt() I openssl_decrypt() odpowiednio metody.



Zaszyfruj łańcuch za pomocą funkcji openssl_encrypt().

Do zaszyfrować ciąg w PHP przy użyciu openssl_encrypt() funkcji, musisz podać ciąg znaków w postaci zwykłego tekstu, metodę szyfrowania i klucz. Funkcja zwróci zaszyfrowane dane, które można następnie bezpiecznie przechowywać lub przesyłać.



Składnia dla openssl_encrypt() metoda to:





string openssl_encrypt ( strunowy $dane , strunowy $metoda , strunowy $ klucz , $opcje = 0 , strunowy $iv , strunowy tag $ = ZERO , strunowy $ ty , int $tag_długość = 16 )
  • $dane: Ciąg lub dane, które chcesz zaszyfrować.
  • $metoda: Metoda szyfrowania lub szyfr, którego chcesz użyć. Listę obsługiwanych metod szyfrowania można uzyskać, korzystając z pliku openssl_get_cipher_methods()
  • $klucz: Klucz szyfrowania, który będzie używany do szyfrowania danych. Powinien to być ciąg o odpowiedniej długości i losowości, w oparciu o wybraną metodę szyfrowania.
  • $opcje: Opcjonalny parametr, który może zawierać dodatkowe flagi dla określonych opcji szyfrowania. Możesz łączyć flagi za pomocą bitowe LUB (|) Typowe flagi obejmują OPENSSL_RAW_DATA I OPENSSL_ZERO_PADDING .
  • $iv: Wektor inicjujący (iv) używany do szyfrowania; powinna to być losowa i niepowtarzalna wartość podana jako ciąg znaków.
  • $znacznik: Opcjonalny parametr używany w trybach szyfrowania AEAD (Authenticated Encryption with Associated Data), takich jak GCM (tryb Galois/Counter) lub CCM (licznik z CBC-MAC). Przechowuje tag uwierzytelniający wygenerowany podczas szyfrowania.
  • Twój: Dodatkowe uwierzytelnione dane, których można użyć w trybach szyfrowania AEAD.
  • $tag_długość: Długość tagu uwierzytelniającego. W trybie GCM długość znacznika wynosi od 4 do 16 bajtów.

Na przykład:


$prosty_ciąg = „Witamy w Linuxhint \N ' ;
Echo „Oryginalny ciąg znaków:” . $prosty_ciąg ;
$szyfrowanie = „AES-128-CTR” ;
$iv_długość = openssl_cipher_iv_length ( $szyfrowanie ) ;
$opcje = 0 ;
$szyfrowanie_iv = '1234567891011121' ;
$klucz_szyfrowania = „Linux” ;
$szyfrowanie = openssl_encrypt ( $prosty_ciąg , $szyfrowanie ,
$klucz_szyfrowania , $opcje , $szyfrowanie_iv ) ;
Echo „Zaszyfrowany ciąg znaków:” . $szyfrowanie . ' \N ' ;
?>

Kod najpierw deklaruje tekst podstawowy „Witamy w Linuxhint” i używa polecenia echo, aby to pokazać. Następnie określa algorytm szyfrowania, który ma być użyty, AES-128-CTR . Korzysta również z openssl_cipher_iv_length() funkcja do obliczania rozmiaru wektor inicjalizacji (IV) potrzebne do tego szyfru.



Kod ustawia szyfrowanie iv wartość do „1234567891011121” i klucz szyfrujący do „Linuks” . Zaszyfrowany ciąg jest następnie wyświetlany za pomocą polecenia echo po zakończeniu szyfrowania za pomocą openssl_encrypt() funkcjonować. Ze względu na losowy wektor inicjujący używany do szyfrowania, końcowy zaszyfrowany ciąg będzie się zmieniał za każdym razem.

Odszyfruj łańcuch za pomocą funkcji openssl_decrypt().

Aby odszyfrować ciąg w PHP, możesz użyć metody openssl_decrypt() funkcjonować. Ta funkcja pobiera zaszyfrowane dane, metodę szyfrowania i klucz jako dane wejściowe i zwraca odszyfrowany tekst jawny.

Składnia dla openssl_decrypt() metoda to:

string openssl_decrypt ( strunowy $dane , strunowy $metoda , strunowy $ klucz , int $opcje = 0 , strunowy $iv , strunowy tag $ , strunowy $ ty )

Argumenty przekazywane do funkcji to:

  • $dane: Zaszyfrowany ciąg lub dane, które chcesz odszyfrować.
  • $metoda: Metoda szyfrowania lub szyfr używany podczas szyfrowania. Listę obsługiwanych metod szyfrowania można uzyskać, korzystając z pliku openssl_get_cipher_methods()
  • $klucz: Klucz szyfrowania, który został użyty do zaszyfrowania danych. Powinien pasować do klucza używanego podczas szyfrowania.
  • $opcje: Opcjonalny parametr, który może zawierać dodatkowe flagi dla określonych opcji odszyfrowywania. Flagi można łączyć za pomocą bitowego operatora OR (|). Typowe flagi obejmują OPENSSL_RAW_DATA I OPENSSL_ZERO_PADDING .
  • $iv: The wektor inicjalizacji (IV) wykorzystywane podczas szyfrowania. Powinien to być ten sam IV, który został użyty podczas szyfrowania i przekazany jako ciąg.
  • $znacznik: Znacznik uwierzytelniania dla trybów szyfrowania AEAD (Authenticated Encryption with Associated Data), takich jak GCM (tryb Galois/Counter) lub CCM (licznik z CBC-MAC). Jeśli uwierzytelnienie się nie powiedzie, openssl_decrypt() zwróci FAŁSZ.
  • Twój: Dodatkowe uwierzytelnione dane, które zostały użyte podczas szyfrowania dla trybów szyfrowania AEAD.

Wartość zwracana: Jeśli się powiedzie, zwraca odszyfrowany ciąg znaków; w przeciwnym razie zwraca FAŁSZ.

Na przykład:


$zaszyfrowany_ciąg = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
Echo „Zaszyfrowany ciąg znaków:” . $zaszyfrowany_ciąg . ' \N ' ;
$deszyfrowanie_iv = '1234567891011121' ;
$szyfrowanie = „AES-128-CTR” ;
$opcje = 0 ;
$klucz_odszyfrowywania = „Linux” ;
$odszyfrowywanie = openssl_decrypt ( $zaszyfrowany_ciąg , $szyfrowanie ,
$klucz_odszyfrowywania , $opcje , $deszyfrowanie_iv ) ;
Echo „Odszyfrowany ciąg znaków:” . $odszyfrowywanie ;
?>

Długość wektora w tym kodzie jest obliczana za pomocą openssl_cipher_iv_length() funkcji, a podczas szyfrowania używane są te same parametry szyfrowania iv i klucza. Algorytm szyfrowania jest zdefiniowany jako AES-128-CTR .

Wcześniej zaszyfrowany ciąg jest odszyfrowywany przy użyciu algorytmu szyfrującego, klucza szyfrującego, ustawień i wartości IV przez openssl_decrypt() funkcjonować. Wynikowy odszyfrowany tekst jest następnie wyświetlany za pomocą polecenia echo.

Wniosek

Tworzenie stron internetowych często wiąże się z szyfrowanie i deszyfrowanie dane. Używając szyfrowania do ochrony poufnych danych, możesz uniknąć narażenia użytkowników na kradzież tożsamości, oszustwa i inne zagrożenia bezpieczeństwa. Ciągi znaków w PHP mogą być szyfrowane i odszyfrowywane przez funkcje openssl_encrypt() I openssl_decrypt() Funkcje. Ostrożnie stosując algorytm szyfrowania i klucz, możesz stworzyć solidny i bezpieczny system do obsługi wrażliwych danych w swoich aplikacjach PHP.