Mã hóa mật khẩu PHP

Mã hóa là một quá trình chuyển đổi một văn bản thuần túy thành một tin nhắn bằng cách sử dụng một số thuật toán mà bất kỳ người dùng thứ ba nào cũng không thể đọc được thông tin. Điều này rất hữu ích cho việc truyền thông tin nhạy cảm vì có ít cơ hội cho kẻ xâm nhập nhắm mục tiêu thông tin được chuyển hơn.

Mã hóa được thực hiện bằng một quá trình gọi là Cryptography . Văn bản sẽ được mã hóa được gọi là Văn bản thuần túy và văn bản hoặc tin nhắn thu được sau khi mã hóa được gọi là Văn bản mật mã . Quá trình chuyển đổi văn bản mật mã sang văn bản thuần túy được gọi là Giải mã .

Laravel sử dụng mã hóa AES-256 và AES-128 , sử dụng Open SSL để mã hóa. Tất cả các giá trị có trong Laravel đều được ký bằng cách sử dụng Mã xác thực thông báo giao thức để giá trị cơ bản không thể bị giả mạo khi nó được mã hóa.

Cấu hình

Lệnh được sử dụng để tạo khóa trong Laravel được hiển thị bên dưới:

php artisan key:generate

Xin lưu ý rằng lệnh này sử dụng trình tạo byte ngẫu nhiên an toàn của PHP và bạn có thể thấy đầu ra như được hiển thị trong ảnh chụp màn hình bên dưới:

Mã hóa mật khẩu PHP

Lệnh được đưa ra ở trên giúp tạo khóa có thể được sử dụng trong ứng dụng web. Quan sát ảnh chụp màn hình được hiển thị bên dưới –

Ghi chú

Các giá trị mã hóa được căn chỉnh chính xác trong tệp config / app.php , bao gồm hai tham số để mã hóa là khóa và mật mã . Nếu giá trị sử dụng khóa này không được căn chỉnh đúng, tất cả các giá trị được mã hóa trong Laravel sẽ không an toàn.

Quy trình mã hóa

Mã hóa một giá trị có thể được thực hiện bằng cách sử dụng trình trợ giúp mã hóa trong bộ điều khiển của lớp Laravel. Các giá trị này được mã hóa bằng OpenSSL và AES-256 cipher. Tất cả các giá trị được mã hóa được ký bằng mã Xác thực Thư (MAC) để kiểm tra bất kỳ sửa đổi nào của chuỗi được mã hóa.

Mã hóa mật khẩu PHP

Đoạn mã hiển thị bên dưới được đề cập trong một bộ điều khiển và được sử dụng để lưu trữ bí mật hoặc tin nhắn nhạy cảm.

fill([
         'secret' => encrypt($request->secret)
      ])->save();
   }
}

Quy trình giải mã

Việc giải mã các giá trị được thực hiện với trình trợ giúp giải mã . Quan sát các dòng mã sau:

use Illuminate\Contracts\Encryption\DecryptException;

// Exception for decryption thrown in facade
try {
   $decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
   //
}

Xin lưu ý rằng nếu quá trình giải mã không thành công do MAC không hợp lệ đang được sử dụng, thì một ngoại lệ thích hợp sẽ được ném ra.

Chúng tôi cung cấp một công cụ mã hóa mã nguồn PHP chạy online và nó là miến phí khi sử dụng, truy cập link phía dưới để sử dụng

Trang chủ: phpencode.cmbliss.com

Mã hóa mật khẩu PHP

- Với công cụ này các bạn có thể đặt mật khẩu cho file PHP của mình và khi cần giải mã ngược lại thì cũng cần nhập đúng mật khẩu dùng để mã hóa

- Hệ thống có 2 chức năng là mã hóa và giải mã, để mã hóa thật đơn gian các bạn chỉ cần copy đoạn mã của file PHP rồi dán vào ô nội dung, khi nội dung trong ô nội dung có thay đổi hệ thống sẽ tự động chạy mã hóa và các bạn chỉ cần chờ cho đến khi mã hóa thành công rồi copy nội dung đã mã hóa và dán trở lại file PHP của bạn (xin lưu ý là hãy sao lưu một bản trước khi mã hóa)

- Để giải mã đoạn code đã được mã hóa cũng thật đơn gian các bạn chỉ cần copy đoạn mã được mã hóa rồi dán vào ô nội dung bên trái và hệ thống sẽ tự động phát hiện và chạy giải mã xong và hiển thị ở ô nội dung bên phải, với những trường hợp có mật khẩu các bạn cạn nhập mật khẩu trước rồi mới dán nội dung mã hóa

Mã hóa mật khẩu PHP

Chú ý: đây chỉ là giải pháp phòng tránh hoặc tạo ra sự phức tạp khi lấy trộm mã php dành cho những đối tượng người dùng không chuyên sâu về công nghệ thông tin và đây không phải là giải pháp tuyệt đối để bảo mật mã PHP của bạn

Với các ứng dụng web thì bảo mật tài khoản, mật khẩu đăng nhập là một tính năng quan trọng và cần được thiết kế cẩn thận nhất. Bất kỳ sự cố nào liên quan tới tài khoản, mật khẩu cũng tiềm ẩn nguy cơ website bị mất quyền kiểm soát hoặc nội dung website có thể bị thay đổi. Đối với các bạn phát triển ứng dụng web thì việc bảo mật, mã hoá mật khẩu là rất cần thiết và bắt buộc. Hiện nay, gần như tất cả các PHP framework đều hỗ trợ các thư viện mã hoá mật khẩu đủ mạnh để bảo đảm mật khẩu được mã hoá an toàn mà không bị giải mã. Tuy nhiên, nếu các bạn không sử dụng các PHP framework có hỗ trợ thư viện mã hoá mật khẩu thì các bạn có thể sử dụng thư viện PHP Password Library.

Thư viện PHP Password Library làm một nhiệm vụ chủ yếu đó là mã hoá mật khẩu. Thư viện PHP Password Library cung cấp nhiều thuật toán mã hoá cao cấp, bảo đảm an toàn tuyệt đối thông tin nhạy cảm này. Ngoài các hàm mã hoá thông dụng như MD5, SHA1, SHA256, SHA512 thì thư viện PHP Password Library còn hỗ trợ các hàm mã hoá như BCrypt, BSDiCrypt, DESCrypt. Trong đó, BCrypt là hàm mã hoá mật khẩu được khuyên dùng nhiều nhất hiện nay bởi khả năng hạn chế quét mật khẩu cũng như mỗi mật khẩu do người dùng nhập vào đều được mã hoá thành một chuỗi 60 bytes khác nhau hoàn toàn cho dù hai mật khẩu được nhập là giống nhau.

Để sử dụng thư viện PHP Password Library, các bạn cài đặt với dòng lệnh Composer sau:

Code:

composer require rych/phpass

Bây giờ, các bạn có thể sử dụng thư viện PHP Password Library để mã hoá mật khẩu như ví dụ sau:

PHP:

Các bạn có thể tìm hiểu thêm về thư viện PHP Password Library tại địa chỉ https://rchouinard.github.io/phpass.