Lubisz flat white? Mob programming przy kawie.
  • Blog
  • Lifestyle
  • Linux
  • Programowanie
    • PHP
    • C#
    • SQL
    • REST
    • Dobre praktyki
    • Open source
    • Porady
7 stycznia 2023 przez Przemysław Sobolewski 0
PHP

Szyfrowanie wiadomości kryptografią asymetryczną.

Szyfrowanie wiadomości kryptografią asymetryczną.
7 stycznia 2023 przez Przemysław Sobolewski 0
PHP

Podczas wrzucania wiadomości na kolejkę (rabbitmq/ redis), warto czasami przemyśleć czy wrzucane wiadomości wymagają dodatkowego zaszyfrowania.

PHP ma wbudowane funkcje do pracy z kryptografią asymetryczną, która opiera się na parze kluczy publicznych i prywatnych. Można użyć biblioteki openssl, aby szyfrować i deszyfrować dane za pomocą kluczy publicznych i prywatnych (zobacz jak wygenerować klucz publiczny i prywatny).

Aby szyfrować dane za pomocą klucza publicznego, możesz użyć funkcji openssl_public_encrypt(). Na przykład:

$plaintext = "Hello, World!";

// Wczytaj klucz publiczny z pliku
$publicKey = openssl_pkey_get_public("file://path/to/public_key.pem");

// Szyfruj dane za pomocą klucza publicznego
openssl_public_encrypt($plaintext, $encrypted, $publicKey);

// Wyświetl zaszyfrowany ciąg
echo base64_encode($encrypted);

Funkcja base64_encode() w PHP nie ma limitu znaków. Możesz zakodować dowolny ciąg znaków za jej pomocą.

Warto jednak pamiętać, że zakodowany ciąg znaków jest o około 33% dłuższy niż oryginalny ciąg, ponieważ base64 koduje każdy bajt (8 bitów) danych jako 2 znaki ASCII. Jeśli masz ograniczenie na długość ciągów znaków, np. w bazie danych lub w komunikacji sieciowej, warto uwzględnić to, planując użycie base64.

Na przykład, jeśli masz ograniczenie na długość ciągów znaków w bazie danych na 1000 znaków, możesz zakodować maksymalnie około 750 znaków danych za pomocą base64 (1000 znaków / 1,33 = 750 znaków).

Aby odszyfrować dane za pomocą klucza prywatnego, możesz użyć funkcji openssl_private_decrypt(). Na przykład:

// Wczytaj zaszyfrowany ciąg
$encrypted = base64_decode("...");

// Wczytaj klucz prywatny z pliku
$privateKey = openssl_pkey_get_private("file://path/to/private_key.pem");

// Odszyfruj dane za pomocą klucza prywatnego
openssl_private_decrypt($encrypted, $decrypted, $privateKey);

// Wyświetl odszyfrowany ciąg
echo $decrypted;

Jeśli chcesz szyfrować dane za pomocą klucza prywatnego i odszyfrowywać je za pomocą klucza publicznego, możesz użyć funkcji openssl_private_encrypt() i openssl_public_decrypt() w odpowiedniej kolejności.

Pamiętaj, że klucze publiczne i prywatne są parami i muszą być odpowiednio sparowane, aby szyfrowanie i deszyfrowanie działały poprawnie.

kryptografia

Poprzedni artykuł[Postman] pre-request scripts - auth tokenNastępny artykuł Jak wygenerować klucz publiczny i prywatny?data key, key, shut down

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Przemysław Sobolewski
Team Lead/ Dev, Mentor, Trener – aktywny zawodowo od 2010. Moje początki z programowaniem w php/ js sięgają '98 r. Doświadczenie zbierałem przy wielu projektach, rozwijając umiejętności z zakresu kompetencji twardych jak i miękkich. Twórca kilku startupów. Obecnie entuzjasta fizyki kwantowej oraz AI i Pythona, które rozwijam w wolnych chwilach.
Postaw mi kawę na buycoffee.to

Podobne wpisy

Z czym się je DTO – data transfer object patern4 lutego 2023
Server-side request forgery (SSRF) czyli Fałszowanie żądań po stronie serwera4 lutego 2023
[GIT] Jak zmienić urls w istniejącym repozytorium28 stycznia 2023
Jak dodać i włączyć xsl extension w dockerfile dla PHP?7 stycznia 2023
Jak wygenerować klucz publiczny i prywatny?7 stycznia 2023

Newsletter

Dołącz do mojego newslettera i bądź na bieżąco z nowościami na moim blogu!

Tagi

C# dobre praktyki domena favicon film flash fonts format c generator google google chrome hasła host inspiracja instalacja intro jquery js kryptografia loading logowanie menu na luzaku obrót opera Outlock 2007 ovh pdf php plugin plyta glowna podręcznik pokaz/ukryj porady pozycjonowanie program programy rest screen sortowanie sql sumatra pdf Visual Studio 2008 windows xp WordPress

Polecane

  • ‣ Tworzenie stron internetowych
  • ‣ Dodaj za darmo mieszkanie na sprzedaż

Podążaj za ekscytacją!

Żyjemy w dynamicznych czasach gdzie informacja jest cenniejsza niż pieniądze. Na moim blogu zdobędziesz cenną wiedzę całkowicie za DARMO. Dlaczego? Sprawdź w moich postach!

Ostatnie wpisy

Z czym się je DTO – data transfer object patern4 lutego 2023
Server-side request forgery (SSRF) czyli Fałszowanie żądań po stronie serwera4 lutego 2023
[GIT] Jak zmienić urls w istniejącym repozytorium28 stycznia 2023

Kontakt

hi@przemyslawsobolewski.com
hi@przemyslawsobolewski.comwww.przemyslawsobolewski.com

Ostatnie wpisy

Z czym się je DTO – data transfer object patern4 lutego 2023
Server-side request forgery (SSRF) czyli Fałszowanie żądań po stronie serwera4 lutego 2023
[GIT] Jak zmienić urls w istniejącym repozytorium28 stycznia 2023

Popularne wpisy

Mnożenie i dodawanie macierzy w C#6 comments
Ciąg Fibonacciego w C#.5 comments
Jak obrócić obraz w pliku .pdf ?4 comments