OpenSSL mã hóa PHP
Nó nhận một chuỗi dữ liệu nhất định và mã hóa nó bằng một khóa nhất định bằng cách sử dụng mật mã có thể định cấu hình theo mặc định là aes-256-ctr Show Lớp có thể tùy chọn mã hóa dữ liệu được mã hóa bằng base64 Nó cũng có thể giải mã và giải mã dữ liệu được mã hóa trước đó bằng cùng một khóa và mật mã Sử dụng lớp này để mã hóa và giải mã dữ liệu trong php Sử dụng an toàn. mã hóa để mã hóa dữ liệu. Sử dụng an toàn. giải mã để giải mã dữ liệu Không nên thay đổi @param $encoded thành FALSE Trong PHP, có thể mã hóa và giải mã chuỗi bằng cách sử dụng một trong các Tiện ích mở rộng mã hóa có tên là hàm OpenSSL để mã hóa và giải mã Hôm nay, chúng ta hãy xem các bước được Kỹ thuật viên hỗ trợ của chúng tôi thực hiện Hàm openssl_encrypt()Về cơ bản, chức năng này được sử dụng để mã hóa dữ liệu cú pháp
Thông số
Giá trị trả về. Sau đó, nó trả về chuỗi được mã hóa nếu thành công hoặc FALSE nếu thất bại Hàm openssl_decrypt()Thứ hai, Hàm openssl_decrypt() dùng để giải mã dữ liệu cú pháp
Thông số
Giá trị trả về. Sau đó, nó trả về chuỗi được giải mã nếu thành công hoặc FALSE nếu thất bại Tiếp cậnĐầu tiên, khai báo một chuỗi và lưu nó vào biến và sử dụng hàm openssl_encrypt() để mã hóa chuỗi đã cho Sau đó, sử dụng hàm openssl_encrypt() để giải mã chuỗi đã cho ví dụ 1. Ví dụ này minh họa việc mã hóa và giải mã chuỗi đầu ra
ví dụ 2. Ví dụ dưới đây minh họa việc mã hóa và giải mã chuỗi Ở đây chuỗi mã hóa và chuỗi giải mã giống nhau nhưng chuỗi mã hóa thay đổi ngẫu nhiên tương ứng đầu ra
[Mắc kẹt ở giữa? Phần kết luậnNói tóm lại, hôm nay chúng ta đã thấy các bước tiếp theo của Kỹ thuật viên hỗ trợ của chúng tôi để mã hóa và giải mã chuỗi php bằng OpenSSL NGĂN CHẶN MÁY CHỦ CỦA BẠN KHỎI SỰ CỐKhông bao giờ mất khách hàng vì tốc độ máy chủ kém. Hãy để chúng tôi giúp bạn Các chuyên gia máy chủ của chúng tôi sẽ giám sát và bảo trì máy chủ của bạn 24/7 để nó luôn hoạt động nhanh và an toàn Lưu ý. Tôi không phải là chuyên gia mã hóa. Tôi không muốn mật khẩu email SMTP của mình được lưu trữ trong cơ sở dữ liệu ở dạng văn bản thuần túy, vì vậy đây là giải pháp của tôi. Nếu bạn đang làm một cái gì đó tương tự, điều này sẽ ổn thôi. Nếu bạn đang lưu trữ dữ liệu SSN hoặc thẻ tín dụng, bạn sẽ muốn tham khảo ý kiến của chuyên gia mã hóa Hướng dẫn sử dụng php hiện thiếu tài liệu cho các hàm “openssl_encrypt” và “openssl_decrypt”, vì vậy, tôi đã mất một lúc để tổng hợp những việc cần làm để các hàm này hoạt động thay thế cho mcrypt, vốn đã không còn được duy trì từ năm 2003. Hy vọng rằng điều này sẽ giúp bạn đến được nơi cần đến với việc mã hóa và giải mã dữ liệu của mình Trước tiên, bạn sẽ cần tạo một chuỗi byte giả ngẫu nhiên mà bạn sẽ sử dụng làm khóa mã hóa 256 bit. Độ dài được yêu cầu sẽ là 32 (vì 32 byte = 256 bit). Nếu bạn lặp lại phím, bạn sẽ nhận thấy rằng trình duyệt của bạn bị nghẹt. Để tránh lỗi có thể xảy ra khi lưu trữ khóa trong tệp hoặc cơ sở dữ liệu, chúng tôi sẽ base64_mã hóa khóa đó. Sử dụng mã bên dưới để tạo (các) khóa của bạn. Khóa sẽ cần được lưu vì dữ liệu phải được mã hóa và giải mã bằng cùng một khóa. Nếu dữ liệu được mã hóa của bạn đang được lưu trữ trong cơ sở dữ liệu, thì rất có thể khóa mã hóa của bạn sẽ cần được lưu trữ trong tệp cấu hình 1 $encryption_key_256bit = base64_encode(openssl_random_pseudo_bytes(32)); Bây giờ chúng tôi đã có khóa của mình, chúng tôi sẽ tạo chức năng mã hóa. Chúng tôi sẽ chuyển dữ liệu của chúng tôi sẽ được mã hóa và khóa của chúng tôi vào chức năng. Ngoài khóa của chúng tôi, còn có một chuỗi ngẫu nhiên phụ mà chúng tôi sẽ tạo và sử dụng được gọi là véc tơ khởi tạo (IV) giúp giúp tăng cường mã hóa 1 2 3 4 5 6 7 8 9 10 hàm my_encrypt($dữ liệu, $key) { // Xóa mã hóa base64 khỏi khóa của chúng tôi $encryption_key = base64_decode($key); // Tạo vectơ khởi tạo $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); // Mã hóa dữ liệu bằng mã hóa AES 256 ở chế độ CBC bằng khóa mã hóa và vectơ khởi tạo của chúng tôi. $đã mã hóa = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv); // $iv cũng quan trọng như chìa khóa để giải mã, vì vậy hãy lưu nó cùng với dữ liệu được mã hóa của chúng tôi bằng dấu tách duy nhất (. ) return base64_encode($encrypted . '. ' . $iv); } Bây giờ cho chức năng giải mã 1 2 3 4 5 6 7 hàm my_decrypt($dữ liệu, $key) { // Xóa mã hóa base64 khỏi khóa của chúng tôi $encryption_key = base64_decode($key); // Để giải mã, hãy tách dữ liệu được mã hóa khỏi IV của chúng tôi - dấu tách duy nhất chúng tôi sử dụng là ". " danh sách($encrypted_data, $iv) = explode('::', base64_decode($data), 2); return openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv); } Để tất cả chúng cùng nhau 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <?php //$key là khóa 256 bit được mã hóa base64 mà chúng tôi đã tạo trước đó. Bạn có thể sẽ lưu trữ và xác định khóa này trong tệp cấu hình $key = 'bRuD5WYw5wd0rdHR9yLlM6wt2vteuiniQBqE70nAuhU=';<
hàm my_encrypt($dữ liệu, $key) { // Xóa mã hóa base64 khỏi khóa của chúng tôi $encryption_key = base64_decode($key); // Tạo vectơ khởi tạo $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); // Mã hóa dữ liệu bằng mã hóa AES 256 ở chế độ CBC bằng khóa mã hóa và vectơ khởi tạo của chúng tôi. $đã mã hóa = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv); // $iv cũng quan trọng như chìa khóa để giải mã, vì vậy hãy lưu nó cùng với dữ liệu được mã hóa của chúng tôi bằng dấu tách duy nhất (. ) return base64_encode($encrypted . '. ' . $iv); }
hàm my_decrypt($dữ liệu, $key) { // Xóa mã hóa base64 khỏi khóa của chúng tôi $encryption_key = base64_decode($key); // Để giải mã, hãy tách dữ liệu được mã hóa khỏi IV của chúng tôi - dấu tách duy nhất chúng tôi sử dụng là ". " danh sách($encrypted_data, $iv) = explode('::', base64_decode($data), 2); return openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv); }
// dữ liệu của chúng tôi sẽ được mã hóa $password_plain = 'abc123'; echo $password_plain . ";
// dữ liệu của chúng tôi được mã hóa. Dữ liệu được mã hóa này có thể sẽ được đưa vào cơ sở dữ liệu // vì nó được mã hóa base64, nên nó có thể đi thẳng vào trường cơ sở dữ liệu varchar hoặc văn bản mà không lo bị hỏng $password_encrypted = my_encrypt($password_plain, $key); echo $password_encrypted . ";
// bây giờ chúng tôi chuyển dữ liệu được mã hóa của mình trở lại văn bản thuần túy $password_decrypted = my_decrypt($password_encrypted, $key); echo $password_decrypted . "; Đoạn mã trên sẽ xuất ra như sau. Lưu ý rằng chuỗi được mã hóa ở giữa sẽ thay đổi mỗi khi bạn chạy mã nhờ vào vectơ khởi tạo của chúng tôi Làm cách nào để mã hóa tệp PHP?✅ Mã hóa các phần nhỏ hơn của một tệp lớn . Tạo Vector khởi tạo ngẫu nhiên (IV). Lưu trữ IV này ở đầu tệp được mã hóa. . Lấy một đoạn đầu tiên, mã hóa nó bằng IV và lưu trữ nó. . Sử dụng các ký tự đầu tiên của đoạn mã hóa cho IV tiếp theo. . Lấy đoạn tiếp theo và lặp lại bước 3 Làm cách nào để sử dụng openssl_encrypt trong PHP?$iv = openssl_random_pseudo_bytes($ivlen);
Làm cách nào để mã hóa văn bản trong PHP?Mã hóa dữ liệu bằng openssl_encrypt()
. Khi thành công, nó trả về chuỗi được mã hóa. Nếu không, nó trả về FALSE.
Làm cách nào để mã hóa dữ liệu bài đăng trong PHP?php require 'encryption. php'; if ($_SERVER['REQUEST_METHOD'] == 'POST') { // print_r($_POST);exit $nonceValue=$_POST['enckey']; $Encryption = new Encryption(); $username = $Encryption->decrypt($_POST['username'], $nonceValue); // echo 'decrypted: ' . $mobileNumber . ' '; echo 'decrypted: ' . |