Làm cách nào để mã hóa và giải mã ID trong Laravel?

Mã hóa là một quá trình chuyển đổi văn bản thuần túy thành tin nhắn bằng một số thuật toán sao cho 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 hữu ích cho việc truyền thông tin nhạy cảm vì có ít cơ hội hơn cho kẻ xâm nhập nhắm mục tiêu thông tin được truyền

Mã hóa được thực hiện bằng một quy trình gọi là Mật mã. Văn bản cần mã hóa được gọi là Văn bản thuần túy và văn bản hoặc thông báo 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 Openssl để 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ư giao thức để giá trị cơ bản không thể bị giả mạo sau khi đượ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ư trong ảnh chụp màn hình bên dưới -

Lệnh đư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 hiển thị bên dưới -

Ghi chú

Các giá trị cho mã hóa được căn chỉnh chính xác trong cấu hình/ứng dụng. 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 chính xác, tất cả các giá trị được mã hóa trong Laravel sẽ không an toàn

Quá trình mã hóa

Việc 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 mật mã OpenSSL và AES-256. 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 mọi sửa đổi của chuỗi được mã hóa

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

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

Quá 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 sử dụng MAC không hợp lệ, thì một ngoại lệ thích hợp sẽ được đưa ra

Mã hóa đã được sử dụng từ lâu trước khi máy tính được phát minh;

Một kỹ thuật mã hóa rất phổ biến khác là mật mã Caesar. Đây là một trong những kỹ thuật đơn giản nhất và cách thức hoạt động của nó là mỗi chữ cái của văn bản được thay thế bằng một số vị trí cụ thể trong bảng chữ cái

Mặt khác, Laravel cung cấp mã hóa vượt trội, sử dụng OpenSSL để cung cấp mã hóa AES-256 để bạn không thực sự phải nghĩ ra các kỹ thuật mã hóa của riêng mình

Trong hướng dẫn này, bạn sẽ học cách sử dụng mã hóa Laravel để mã hóa văn bản

điều kiện tiên quyết

Trước khi bắt đầu, bạn cần cài đặt và chạy ứng dụng Laravel

Tôi sẽ sử dụng DigitalOcean Ubuntu Droplet cho bản demo này. Nếu muốn, bạn có thể sử dụng mã liên kết của tôi để nhận khoản tín dụng DigitalOcean trị giá 100 đô la miễn phí để khởi động máy chủ của riêng bạn

Nếu bạn chưa có, bạn có thể làm theo các bước từ hướng dẫn này về cách thực hiện điều đó

  • Cách cài đặt Laravel trên DigitalOcean với 1 cú nhấp chuột

Hoặc bạn có thể sử dụng tập lệnh tuyệt vời này để thực hiện cài đặt

🤩 Nhà tài trợ tuyệt vời của chúng tôi 👇

Xem trang web

DigitalOcean cung cấp giải pháp lưu trữ đám mây đơn giản và đáng tin cậy cho phép các nhà phát triển nhanh chóng thiết lập và chạy trang web hoặc ứng dụng của họ

Xem trang web

Bảng công việc chính thức của Laravel. Tìm các nhà phát triển Laravel giỏi nhất và tài năng nhất bằng cách đăng công việc của bạn trên bảng việc làm chính thức của Laravel

Xem trang web

Tìm hiểu cách viết mã chuỗi khối của riêng bạn và tạo tiền điện tử của riêng bạn với nền tảng đào tạo trực tuyến thú vị và tương tác CoinCap. Tìm hiểu thêm về chương trình tài trợ DevDojo và xem biểu trưng của bạn tại đây để đưa thương hiệu của bạn đến với hàng nghìn nhà phát triển.

  • larabuồm

Cấu hình khóa ứng dụng

Trước khi bắt đầu, bạn cần đảm bảo rằng bạn đã tạo Khóa ứng dụng

Nếu bạn chưa tạo khóa, để làm điều đó, bạn có thể chạy lệnh sau

php artisan key:generate

Mã hóa Laravel sẽ vẫn hoạt động mà không cần khóa, nhưng các giá trị được mã hóa có thể không an toàn

Tạo một tuyến đường

Bây giờ chúng ta đã có Khóa ứng dụng sẵn sàng, hãy tiếp tục và tạo hai route, một để kiểm tra mã hóa Laravel và một để kiểm tra giải mã Laravel

Để làm điều đó, hãy mở tệp routes/web.php và thêm vào như sau

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];

Tuyến đầu tiên là tuyến /encrypt, tuyến này sẽ tạo ra một chuỗi được mã hóa cho chúng ta và tuyến thứ hai sẽ giải mã chuỗi đó

Cùng với đó, hãy tạo bộ điều khiển EncryptionController

Tạo bộ điều khiển

Đối với ví dụ này, hãy tạo một bộ điều khiển mới có tên là EncryptionController

php artisan make:controller EncryptionController

Điều này sẽ tạo một bộ điều khiển mới tại.

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
0

Tiếp theo, mở tệp đó trong trình soạn thảo văn bản của bạn và trước tiên thêm mặt tiền

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
1

________số 8_______

Sau đó, hãy tạo hai phương thức công khai mới. một để mã hóa một chuỗi và một để giải mã cùng một chuỗi đó được gọi là

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
2 và
Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
3

phương pháp mã hóa

Hãy bắt đầu với một phương thức Mã hóa đơn giản sẽ mã hóa một chuỗi được mã hóa cứng cho chúng tôi

   public function encrypt[]
   {
        $encrypted = Crypt::encryptString['Hello DevDojo'];
        print_r[$encrypted];
   }

Sơ lược về phương pháp

  • Route::get['encrypt', EncryptionController@encrypt'];
    
    Route::get['decrypt', EncryptionController@decrypt'];
    
    4. đầu tiên chúng ta định nghĩa phương thức
  • Route::get['encrypt', EncryptionController@encrypt'];
    
    Route::get['decrypt', EncryptionController@decrypt'];
    
    5. sau đó sử dụng phương thức tĩnh
    Route::get['encrypt', EncryptionController@encrypt'];
    
    Route::get['decrypt', EncryptionController@decrypt'];
    
    6, chúng tôi mã hóa một chuỗi
    Route::get['encrypt', EncryptionController@encrypt'];
    
    Route::get['decrypt', EncryptionController@decrypt'];
    
    7 đơn giản
  • Route::get['encrypt', EncryptionController@encrypt'];
    
    Route::get['decrypt', EncryptionController@decrypt'];
    
    8. cuối cùng, chúng tôi sẽ in ra chuỗi mã hóa trên màn hình

Sau lần truy cập đó, URL /encrypt thông qua trình duyệt của bạn và bạn sẽ thấy một chuỗi được mã hóa tương tự chuỗi này

string[188] "eyJpdiI6ImxSdGhkeVg2VHlCNUs0citKT0V4NHc9PSIsInZhbHVlIjoiSEM5V0pVWURySnVabGlnenNwTDgzUT09IiwibWFjIjoiZTJlYWVhYmI2OTJmZWJkZWVhOTg3Nzc1ZTQwNDBlNmI3ODIzZTY5YTgwZGM3N2YwYTRmYTEwYmJiYmNjZmE2NiJ9"

Ghi lại chuỗi này và quay lại trình soạn thảo văn bản của bạn để chuẩn bị phương pháp

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
3

phương pháp giải mã

Sau đó, tạo một phương thức công khai mới có tên là

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
3

    public function decrypt[]
    {
         $decrypt= Crypt::decryptString['your_encrypted_string_here'];
         print_r[$decrypt];
    }

Ghi chú

Đảm bảo thay đổi

php artisan make:controller EncryptionController
2 bằng chuỗi được mã hóa thực tế mà bạn đã nhận được từ bước cuối cùng

Tương tự như phương thức Encrypt, chúng ta lại sử dụng phương thức tĩnh

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
1 đối mặt với phương thức tĩnh
php artisan make:controller EncryptionController
4 để giải mã chuỗi

Sau đó, lần này hãy truy cập URL

php artisan make:controller EncryptionController
5 trong trình duyệt của bạn và bạn sẽ thấy thông báo
Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
7 đã được giải mã

Tất nhiên, ví dụ trên chỉ hiển thị chức năng

Route::get['encrypt', EncryptionController@encrypt'];

Route::get['decrypt', EncryptionController@decrypt'];
1. Trong một tình huống thực tế, rất có thể bạn sẽ nhận được chuỗi của mình từ yêu cầu POST hoặc lệnh gọi API chẳng hạn

Phần kết luận

Để biết thêm thông tin về cách sử dụng Mã hóa Laravel, hãy đảm bảo xem tài liệu chính thức tại đây

Làm cách nào để mã hóa và giải mã dữ liệu trong Laravel?

Giới thiệu. Các dịch vụ mã hóa của Laravel cung cấp giao diện đơn giản, thuận tiện để mã hóa và giải mã văn bản qua OpenSSL sử dụng mã hóa AES-256 và AES-128. .
Cấu hình. Trước khi sử dụng bộ mã hóa của Laravel, bạn phải đặt tùy chọn cấu hình khóa trong config/app của mình. .
Sử dụng Bộ mã hóa. Mã hóa một giá trị

Làm cách nào để mã hóa và giải mã mật khẩu trong Laravel?

Để làm điều đó, hãy mở các tuyến đường/web. php và thêm vào như sau. Lộ trình. get['mã hóa', EncryptionController@encrypt']; . get['decrypt', EncryptionController@decrypt']; Lộ trình đầu tiên là /encrypt route sẽ tạo ra một chuỗi được mã hóa cho chúng ta và lộ trình thứ hai sẽ giải mã chuỗi đó.

Làm cách nào để mã hóa và giải mã ID trong PHP?

6 câu trả lời .
$encrypted_id = base64_encode[$id];.
$decrypted id = base64 decode[$encrypted id];.
$salt="MY_SECRET_STUFF"; . .
$decrypted id = base64 decode[$encrypted id];

Làm cách nào để mã hóa mã trong Laravel?

Việc 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 mật mã OpenSSL và AES-256. 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 mọi sửa đổi của chuỗi được mã hóa.

Chủ Đề