Get in touch
or send us a question?
CONTACT

Hướng dẫn php openssl_decrypt

Trong PHP, có thể mã hóa và giải mã một chuỗi bằng cách sử dụng một trong các Tiện ích mở rộng mật mã được gọi là hàm OpenSSL để mã hóa và giải mã.

1. openssl_encrypt ()

Hàm openssl_encrypt (): Hàm openssl_encrypt () được sử dụng để mã hóa dữ liệu.

Cú pháp:

string openssl_encrypt (string $ data, string $ method, string $ key,
                        $ options = 0, string $ iv, string $ tag = NULL,
                        string $ aad, int $ tag_length = 16)

Thông số:

  • $ data: Nó chứa chuỗi hoặc dữ liệu cần được mã hóa.
  • $ method: Phương thức mật mã được sử dụng bằng hàm openssl_get_cipher_methods ().
  • $ key: Nó giữ khóa mã hóa.
  • $ options: Nó giữ sự phân chia theo chiều dọc của các cờ OPENSSL_RAW_DATA và OPENSSL_ZERO_PADDING.
  • $ iv: Nó chứa vector khởi tạo không phải là NULL.
  • $ tag: Nó giữ thẻ xác thực được chuyển qua tham chiếu khi sử dụng chế độ mật mã AEAD (GCM hoặc CCM).
  • $ aad: Nó chứa dữ liệu xác thực bổ sung.
  • $ tag_length: Nó chứa độ dài của thẻ xác thực. Độ dài của thẻ xác thực nằm trong khoảng từ 4 đến 16 đối với chế độ GCM.

Giá trị trả về: Nó trả về chuỗi được mã hóa khi thành công hoặc FALSE khi thất bại.

2. openssl_decrypt ()

Hàm openssl_decrypt () Hàm openssl_decrypt () được sử dụng để giải mã dữ liệu.

Cú pháp:

string openssl_decrypt (string $ data, string $ method, string $ key,
             int $ options = 0, string $ iv, string $ tag, string $ aad)

Thông số:

  • $ data: Nó chứa chuỗi hoặc dữ liệu cần được mã hóa.
  • $ method: Phương thức mật mã được sử dụng bằng hàm openssl_get_cipher_methods ().
  • $ key: Nó giữ khóa mã hóa.
  • $ options: Nó giữ sự phân chia theo chiều dọc của các cờ OPENSSL_RAW_DATA và OPENSSL_ZERO_PADDING.
  • $ iv: Nó chứa vector khởi tạo không phải là NULL.
  • $ tag: Nó giữ thẻ xác thực bằng chế độ mật mã AEAD (GCM hoặc CCM). Khi xác thực không thành công openssl_decrypt () trả về FALSE.
  • $ aad: Nó chứa dữ liệu xác thực bổ sung.

Giá trị trả về: Nó trả về chuỗi được giải mã khi thành công hoặc FALSE khi thất bại.

Cách tiếp cận: Đầu tiên khai báo một chuỗi và lưu trữ nó vào biến và sử dụng hàm openssl_encrypt () để mã hóa chuỗi đã cho và sử dụng hàm openssl_decrypt () để giải mã chuỗi đã cho.

3. Ví dụ

Ví dụ này minh họa việc mã hóa và giải mã chuỗi.

<?php

$simple_string "Welcome to GeeksforGeeks\n";

echo "Original String: " $simple_string;

$ciphering "AES-128-CTR";

$iv_length = openssl_cipher_iv_length($ciphering);

$options = 0;

$encryption_iv '1234567891011121';

$encryption_key "GeeksforGeeks";

$encryption = openssl_encrypt($simple_string$ciphering,

            $encryption_key$options$encryption_iv);

echo "Encrypted String: " $encryption "\n";

$decryption_iv '1234567891011121';

$decryption_key "GeeksforGeeks";

$decryption=openssl_decrypt ($encryption$ciphering

        $decryption_key$options$decryption_iv);

echo "Decrypted String: " $decryption;

Đầu ra:

Chuỗi ban đầu: Chào mừng bạn đến với GeeksforGeeks
Chuỗi được mã hóa: hwB1K5NkfcIzkLTWQeQfHLNg5FlyX3PNUA ==
Chuỗi được giải mã: Chào mừng bạn đến với GeeksforGeeks