Mã PHP ví dụ này giúp minh họa cách mã hóa để bảo vệ dữ liệu nhạy cảm. Sử dụng các hàm mã hóa openssl_encrypt và openssl_decrypt, ví dụ này giúp cho thấy việc triển khai mã hóa cho ứng dụng của bạn tương đối dễ dàng. Việc sử dụng mã hóa rất quan trọng khi bạn có thông tin nhạy cảm cần bảo vệ. Ví dụ: bạn có thể có một cửa hàng trực tuyến thu thập tên, địa chỉ và thông tin cá nhân khác của khách hàng. Loại dữ liệu này bị đánh cắp do vi phạm cơ sở dữ liệu có thể gây hậu quả nghiêm trọng cho bạn với tư cách là nhà cung cấp, cùng với khách hàng của bạn
Mã ví dụ này chỉ dùng để minh họa quá trình mã hóa và giải mã dữ liệu không khó thực hiện như người ta tưởng. Bạn có bài tập về nhà riêng để tìm cách triển khai tốt nhất cho ứng dụng của mình. Mã này có thể được sửa đổi để lưu dữ liệu được mã hóa vào cơ sở dữ liệu MySQL của bạn
Để biết thêm thông tin chi tiết về các chức năng mật mã được sử dụng tại đây, vui lòng truy cập https. //www. php. net/thủ công/vi/chức năng. mã hóa openssl. php và https. //www. php. net/thủ công/vi/chức năng. openssl-giải mã. php
Để sử dụng mã này, chỉ cần sao chép và dán mã vào môi trường phát triển PHP của bạn và định cấu hình các biến được chỉ ra trong dòng nhận xét cho môi trường cụ thể của bạn
Mã hóa và giải mã dữ liệu là một kỹ thuật được sử dụng cho mục đích bảo mật. Kỹ thuật này được sử dụng rộng rãi để giữ bí mật các tin nhắn bí mật và chỉ người nhận tin nhắn mới có thể đọc được
Trong PHP, có thể mã hóa và giải mã dữ liệu. Chà, PHP đã có sẵn các hàm để thực hiện tác vụ này. Vì vậy, hãy xem làm thế nào chúng ta có thể làm điều đó
Hàm openssl_encrypt[] và openssl_decrypt[] PHP
Hàm openssl_encrypt[] PHP có thể mã hóa dữ liệu bằng khóa mã hóa
Mặt khác, hàm openssl_decrypt[] có thể giải mã dữ liệu được mã hóa bằng khóa giải mã
Ở đây trong bài viết này, tôi sẽ chỉ cho bạn cách mã hóa và giải mã một chuỗi trong PHP với các ví dụ
Cú pháp cho openssl_encrypt[]
Dưới đây là cú pháp cho hàm openssl_encrypt
openssl_encrypt[ string $data, string $method, string $key, $options = 0, string $iv, string $tag= NULL, string $aad, int $tag_length = 16 ]
Dưới đây là mô tả từng tham số của hàm
dữ liệu $. Đây là chuỗi hoặc dữ liệu sẽ được mã hóa
phương thức $. Phương pháp mật mã. Chúng ta phải sử dụng hàm openssl_get_cipher_methods[] để tạo phương thức mật mã để lấy kết quả và chuyển nó cho hàm openssl_encrypt[]
khóa $. Khóa mã hóa được sử dụng
tùy chọn $. Phân tách theo từng bit của các cờ OPENSSL_RAW_DATA và OPENSSL_ZERO_PADDING
$iv. Vectơ khởi tạo không phải là NULL
thẻ $. Thẻ xác thực được chuyển qua tham chiếu khi sử dụng chế độ mật mã AEAD có thể là GCM hoặc CCM
$aad. Đây là dữ liệu xác thực bổ sung
$tag_length. Nó giữ độ dài của thẻ xác thực. Đối với chế độ GCM, độ dài của thẻ xác thực có thể nằm trong khoảng từ 4 đến 6
Cú pháp cho openssl_decrypt[]
Dưới đây là cú pháp của hàm openssl_decrypt[] PHP
openssl_decrypt[ string $data, string $method, string $key, int $options = 0, string $iv, string $tag, string $aad]
Mô tả về từng tham số của hàm openssl_decrypt[] được đưa ra bên dưới
dữ liệu $. Chuỗi hoặc dữ liệu được mã hóa
phương thức $. Phương thức mật mã được tạo bởi hàm openssl_get_cipher_methods[] PHP
khóa $. Chìa khóa mã hóa. Điều này là cần thiết để giải mã chuỗi được mã hóa
tùy chọn $. Sự phân tách bitwise của các cờ cho OPENSSL_RAW_DATA và OPENSSL_ZERO_PADDING
$iv. Vectơ khởi tạo không phải NULL
thẻ $. Giữ thẻ xác thực bằng chế độ mật mã AEAD có thể là GCM hoặc CCM. Trong trường hợp xác thực không thành công, openssl_decrypt[] trả về FALSE
$aad. Dữ liệu xác thực bổ sung
Ngoài ra, đọc
- Làm cách nào để lấy giá trị tối đa từ một mảng trong PHP?
- Làm cách nào để kiểm tra xem một giá trị có tồn tại trong một mảng trong PHP không?
Ví dụ về mã PHP để mã hóa và giải mã chuỗi
ví dụ 1. Ví dụ này sẽ mã hóa và giải mã một chuỗi giữ nguyên chuỗi đã mã hóa. Dưới đây là mã PHP được đưa ra
ví dụ 2. Ví dụ này sẽ thay đổi ngẫu nhiên chuỗi được mã hóa. Mỗi khi bạn chạy mã, nó sẽ thay đổi chuỗi mã hóa tương ứng. Mặc dù chuỗi được mã hóa và chuỗi được giải mã sẽ giống nhau
Dưới đây là mã của ví dụ này
Vì vậy, tôi hy vọng, bạn đã hiểu và biết cách chúng tôi mã hóa dữ liệu và chuỗi của mình, sau đó giải mã nó bằng PHP để lấy lại dữ liệu của chúng tôi