Các chức năng mã hóa trong php là gì

Chúng ta đang sống trong thời đại dữ liệu. Ý tôi là, thôi nào. Toàn bộ internet chỉ là một khối dữ liệu lớn, phải không? . Bây giờ chúng ta đang xử lý dữ liệu mỗi ngày trong cuộc sống hàng ngày của mình, điều này không có nghĩa là tất cả dữ liệu không được bảo vệ và công khai, phải không? . Như, mã hóa là gì và mã hóa trong PHP hoạt động như thế nào, tại sao chúng ta cần nó và khi nào chúng ta cần nó. Mặc dù bản thân mã hóa là một chủ đề phức tạp nhưng tôi sẽ cố gắng hết sức để giải thích mọi thứ theo cách thú vị. Vì vậy, không nói thêm nữa, hãy bắt đầu

Các chức năng mã hóa trong php là gì
Các chức năng mã hóa trong php là gì
Ảnh của Markus Spiske trên Pexels. com

mã hóa là gì?

Như tôi đã nói trước đây, tôi sẽ cố gắng tránh tất cả các từ phức tạp trong khi giải thích mã hóa ;p. Hãy nghĩ đến cảnh bạn cần gửi email/thư cho bạn của mình và một anh chàng khác sẽ mang thư đi chuyển cho người bạn mong muốn. Nhưng bức thư chứa thông tin nhạy cảm. Đó là lý do tại sao bạn không muốn người vận chuyển có thông tin ngay cả khi anh ta mở bức thư và đọc nó. Vì vậy, bạn đã viết bức thư bằng cách thay đổi vị trí của bảng chữ cái một. Điều đó có nghĩa là, thay vì viết “good”, bạn đã viết “hppe”. Và bạn đã nói với bạn của mình về sự thật này trong khi nhà mạng không biết gì về nó. Bây giờ, nếu người vận chuyển mở bức thư, “hppe” sẽ không có ý nghĩa gì đối với anh ta, trong khi bạn của bạn có thể dễ dàng chuyển nó trở lại thành “good” và đọc dễ dàng

Xin chúc mừng, bạn vừa thực hiện một số thao tác mã hóa. Văn bản gốc của bạn, "tốt" trong ví dụ của chúng tôi được gọi là văn bản gốc trong mã hóa. Và văn bản được chuyển đổi là “hppe” trong ví dụ của chúng tôi được gọi là bản mã. Tôi hy vọng bây giờ bạn đã hiểu rõ, việc thay đổi một số thông tin để trông giống như một số dữ liệu vô nghĩa là cái mà chúng tôi gọi là mã hóa. Tất cả mã hóa tuân theo một số thuật toán, trong trường hợp của chúng tôi, đó là thay đổi vị trí của bảng chữ cái. Tất nhiên, mã hóa trong thế giới thực sẽ không tuân theo một thuật toán đơn giản như chúng tôi đã làm trong bài viết này 😅. Ngoài ra, mã hóa trong thế giới thực cần một khóa để mã hóa thứ gì đó bằng thuật toán

Các loại mã hóa

Được rồi, bây giờ chúng ta biết mã hóa chính xác là gì. Bây giờ là lúc để tìm hiểu thêm về loại mã hóa. Hãy nhớ rằng chúng tôi đã nói với bạn về khóa mã hóa trong phần trước? . Một là Mã hóa đối xứng và một là Mã hóa bất đối xứng. Hãy nói về từng cái trước khi thảo luận về mã hóa trong PHP 😁

Mã hóa đối xứng

Các chức năng mã hóa trong php là gì
Các chức năng mã hóa trong php là gì

Trong mã hóa đối xứng, dữ liệu được mã hóa và giải mã bằng một khóa mã hóa duy nhất. Bạn không nên chia sẻ khóa với bất kỳ ai không có quyền truy cập vào dữ liệu của bạn. Đó là lý do tại sao nó được gọi là khóa riêng. Vì vậy, nếu bạn mã hóa thư của mình bằng khóa riêng, bạn cũng phải chia sẻ khóa riêng với bạn của mình. Nếu không, anh ấy sẽ không thể giải mã bức thư của bạn và đọc nó. Bạn có thể có cái nhìn tổng quan về mã hóa đối xứng nếu để ý infographic trên

Mã hóa bất đối xứng

Các chức năng mã hóa trong php là gì
Các chức năng mã hóa trong php là gì

Không giống như mã hóa đối xứng, ở đây bạn không phải chia sẻ khóa riêng của mình với nhau để chuyển các tin nhắn được mã hóa. Mã hóa bất đối xứng có một câu chuyện hoàn toàn khác. Trong mã hóa bất đối xứng, bạn của bạn chia sẻ khóa công khai của anh ấy với bạn. Mà bạn sử dụng để mã hóa bức thư. Nhưng một khi bạn đã mã hóa thư bằng khóa chung, bạn không thể giải mã thư bằng khóa chung nữa. Vì vậy, ngay cả khi nhà cung cấp dịch vụ ăn cắp khóa công khai của bạn, anh ta vẫn không thể giải mã bức thư và đọc nó. Cách duy nhất để giải mã bức thư nằm trong tay bạn của bạn, đó là khóa riêng mà anh ấy không chia sẻ với bất kỳ ai

Tại thời điểm này, bạn nên có ý tưởng về cách thức hoạt động của mã hóa bất đối xứng. Tuy nhiên, hãy tóm tắt lại điều này một lần nữa. Mã hóa bất đối xứng hoạt động với hai khóa. Một khóa công khai và một khóa riêng. Bất kỳ ai cũng có thể mã hóa dữ liệu bằng khóa chung, nhưng chỉ khóa riêng mới có thể giải mã dữ liệu được mã hóa

Tại sao mã hóa là cần thiết?

Như chúng tôi đã nói trước đây, dữ liệu và thông tin đóng một vai trò quan trọng trong cuộc sống của chúng ta. Ngày nay, chúng tôi chuyển thông tin cá nhân qua internet nhiều hơn bao giờ hết. Nó có thể là mật khẩu, thông tin thẻ tín dụng, số an sinh xã hội, v.v. Điều quan trọng là phải bảo vệ những thông tin nhạy cảm như vậy của chúng tôi khi chúng đang di chuyển qua internet. Và cách tốt nhất để làm như vậy là mã hóa dữ liệu của chúng tôi đúng cách

Bên cạnh trường hợp sử dụng cá nhân của chúng tôi, các công ty và tổ chức cần hết sức chú ý đến việc mã hóa dữ liệu. Vì không có hệ thống nào an toàn 100% trước các cuộc tấn công mạng. Mặc dù chúng tôi không thể đảm bảo ngăn chặn các cuộc tấn công mạng, nhưng ít nhất chúng tôi có thể ngăn chặn thiệt hại của các cuộc tấn công mạng bằng cách mã hóa tất cả dữ liệu nhạy cảm mà chúng tôi thu thập, lưu trữ và xử lý. Bằng cách này, ngay cả sau khi một công ty gặp phải bất kỳ trường hợp nào như vi phạm dữ liệu, họ vẫn có thể đảm bảo tất cả thông tin đăng nhập của người dùng đều an toàn bằng cách mã hóa thông tin đăng nhập đúng cách. Đó là một trò chơi đôi bên cùng có lợi cho cả công ty hoặc tổ chức và người tiêu dùng của họ

Trong một dòng, mã hóa là cần thiết để bảo vệ dữ liệu

Khi nào chúng ta cần mã hóa?

Chúng tôi cần mã hóa bất cứ khi nào chúng tôi xử lý dữ liệu nhạy cảm. Ví dụ: trong khi lưu trữ dữ liệu nhạy cảm vào cơ sở dữ liệu hoặc trong khi gửi dữ liệu nhạy cảm tới người dùng cuối hoặc tới một máy chủ khác. Điều này làm cho các cuộc tấn công của người đàn ông ở giữa trở nên vô dụng. Đừng chỉ nói về máy chủ, chúng ta nên sử dụng mã hóa trong các thiết bị cục bộ của mình. Giống như, máy tính để bàn hoặc máy tính xách tay cá nhân của chúng tôi. Bộ lưu trữ của chúng tôi là thiết bị cá nhân của chúng tôi. Nơi chúng tôi lưu trữ mọi thứ từ ghi chú việc cần làm đến thông tin ngân hàng. Vì vậy, khi lưu trữ thông tin như thế này trên máy tính xách tay hoặc máy tính để bàn của chúng tôi, chúng tôi cũng nên sử dụng mã hóa thích hợp. Điều này sẽ giúp bạn bảo vệ phần dữ liệu đó trong khi cho phép khách sử dụng thiết bị của bạn hoặc nếu thiết bị của bạn bị đánh cắp hoặc thậm chí bị mất

Mã hóa đối xứng trong php

Nói về mã hóa đủ rồi 😅, giờ hãy nói về mã hóa trong PHP. Chúng tôi sẽ bắt đầu với mã hóa đối xứng. Hàm chúng ta sẽ sử dụng để mã hóa trong PHP được gọi là openssl_encrypt. Hàm này nhận 3 đối số bắt buộc và 5 đối số tùy chọn. Đối số bắt buộc đầu tiên là dữ liệu mà bạn muốn mã hóa, đối số thứ hai là thuật toán mà bạn muốn sử dụng trong mã hóa của mình và đối số thứ ba là khóa mã hóa của bạn. Để xem danh sách các thuật toán khả dụng có sẵn trong PHP, hãy sử dụng hàm openssl_get_cipher_methods

Nếu bạn muốn tìm hiểu thêm về các đối số tùy chọn, tôi khuyên bạn nên truy cập URL mà tôi đã liên kết với tên hàm. Được rồi, bây giờ là cách thực hiện mã hóa đối xứng trong PHP

Trong ví dụ trên, tin nhắn nhạy cảm của bạn được lưu dưới biến $plaintext và $cipher là thuật toán chúng tôi đang sử dụng trong quá trình mã hóa hiện tại. Biến $key giữ khóa mã hóa của chúng tôi, đó là “Blog Desire” trong ví dụ của chúng tôi. Cái tiếp theo là $iv, chứa Vector ban đầu. Để giải mã, hãy đảm bảo bạn đã lưu $key và $iv

Và đây là cách thực hiện giải mã bất đối xứng trong PHP

Mã hóa bất đối xứng trong PHP

Như chúng ta đã thảo luận trước đây, mã hóa bất đối xứng cần hai khóa. Một là khóa công khai và một là khóa riêng. Khóa mã hóa công khai chịu trách nhiệm thực hiện mã hóa và khóa mã hóa riêng được yêu cầu để giải mã văn bản được mã hóa. Bây giờ, nhiệm vụ đầu tiên của chúng ta là lấy hai chìa khóa. Vì vậy, chúng tôi sẽ tạo khóa riêng và khóa chung bằng cách sử dụng hàm openssl_pkey_new và lưu nó dưới biến $result. Ví dụ

$result = openssl_pkey_new(array("private_key_bits" => 4096));

Nhưng nó vẫn chưa sẵn sàng để sử dụng. Chúng ta cần xuất khóa riêng ra khỏi biến $result. Đây là cách thực hiện

openssl_pkey_export($result, $privateKey);

Khóa riêng tư hiện được lưu dưới biến $privateKey, đã đến lúc lấy khóa chung và lưu nó dưới biến $publicKey

$publicKey = openssl_pkey_get_details($result)['key'];

Bây giờ chúng tôi có cả khóa riêng và khóa chung. Chúng tôi có thể mã hóa và giải mã dữ liệu bằng các khóa ở trên. Hãy mã hóa thứ gì đó bằng khóa chung

$plaintext = "Welcome To Blogdesire";
openssl_public_encrypt($plaintext,$encrypted_text,$publicKey);

Bây giờ chúng ta có phiên bản được mã hóa của văn bản gốc trong biến $encrypted_text. Và chúng ta có thể dễ dàng giải mã văn bản được mã hóa bằng khóa riêng nếu muốn

openssl_private_decrypt($encrypted_text, $plaintext, $privateKey);

Nó chỉ đơn giản vậy thôi. Chúng ta có thể kết hợp mọi thứ của mã hóa bất đối xứng trong PHP và nó sẽ trông như thế này

 4096));
//Export private key to $privateKey
openssl_pkey_export($result, $privateKey);
//Get the public key
$publicKey = openssl_pkey_get_details($result)['key'];
//Prepare your plain text to encrypt
$plaintext = "Welcome To Blogdesire";
//Encrypt and export encrypted value to $encrypted_text
openssl_public_encrypt($plaintext,$encrypted_text,$publicKey);
//Print encrypted text 
echo $encrypted_text;
//Decrypt the encrypted message using the private key
openssl_private_decrypt($encrypted_text, $plaintext, $privateKey);
//Print the decrypted message
echo $plaintext;

Vâng, đó là cho ngày hôm nay các bạn. Tôi hy vọng bạn thực sự thích bài viết này vì tôi đã cố gắng giải thích mọi thứ theo cách dễ hiểu nhất có thể. Nếu bạn có bất kỳ sự nhầm lẫn, câu hỏi hoặc đề xuất nào liên quan đến bài viết, vui lòng gửi chúng trong phần bình luận

Chức năng mã hóa trong PHP là gì?

PHP bao gồm thuật toán băm để mã hóa mật khẩu. Phần lớn nó được sử dụng trong các chức năng mã hóa mật khẩu là crypt(), password_hash() và md5() .

Chức năng của mã hóa là gì?

Mã hóa là quá trình chuyển đổi dữ liệu để duy trì tính bảo mật của dữ liệu ; .

Mã hóa nào là tốt nhất cho PHP?

Mã hóa khóa bí mật (hay còn gọi là mã hóa đối xứng) sử dụng một khóa duy nhất để mã hóa và giải mã dữ liệu. Trước đây, PHP dựa vào mcrypt và openssl để mã hóa khóa bí mật. PHP7. 2 giới thiệu Natri, hiện đại hơn và được coi là an toàn hơn.

Mã hóa và giải mã trong PHP là gì?

PHP cho phép mã hóa và giải mã một chuỗi bằng một trong các Tiện ích mã hóa, được gọi là OpenSSL . Tóm lại, nó có thể được sử dụng để mã hóa và giải mã dữ liệu. Sau đây, chúng ta sẽ xem xét một số trường hợp sử dụng hàm OpenSSL trong PHP.