در حال بارگزاری ...

مفاهیم پایه رمزگذاری (encryption) در لاراول

توسط الهه قنبری
آخرین به روز رسانی جمعه 01 آذر 1398

در این مقاله از لیداوب، به طور خلاصه در مورد رمزگذاری (encryption) در لاراول بحث خواهیم کرد. با ما همراه باشید. فریم ورک لاراول روشی کاربردی و ساده برای کار با رمزگذاری ارائه می‌کند. encrypter

در این مقاله از لیداوب، به طور خلاصه در مورد رمزگذاری (encryption) در لاراول بحث خواهیم کرد. با ما همراه باشید.


فریم ورک لاراول روشی کاربردی و ساده برای کار با رمزگذاری ارائه می‌کند. encrypterهای پیش‌فرض در لاراول از OpenSSL استفاده می‌کنند و دو نوع رمزگذاری AES-256 و AES-128 را ارائه می‌‌دهند. توصیه ما به شما این است که از رمزگذاری داخلی فریم ورک لاراول استفاده کنید. در ادامه همراه ما باشید تا اصول اولیه عملیات رمزگذاری در لاراول را فرا بگیرید.

رمزگذاری (encryption) در لاراول

ما باید یک گزینه key را در فایل پیکربندی config/app.php تنظیم کنیم. برای ایجاد این کلید می‌توانید از دستور آرتیسان زیر استفاده کنید.

php artisan key:generate

دستور آرتیسان بالا از generator بایت‌های تصادفی امن در php برای ایجاد یک کلید استفاده می‌کند. پس از اجرای دستور، فایل “.env” ما را آپدیت می‌کند. اگر مقدار کلید به درستی تنظیم نشده باشد، مقادیر رمزگذاری شده توسط لاراول نا امن خواهند بود.

مثالی از استفاده از رمزگذاری

در اینجا، مثالی از چگونگی رمزگذاری یک عدد صحیح و سپس چگونگی رمزگشایی مقدار رمزگذاری شده آورده شده است.

رمزگذاری

اجازه دهید با ایجاد یک کنترلر با استفاده از دستور آرتیسان زیر شروع کنیم.

php artisan make:controller EncryptController

در کنترلر ایجاد شده، تابعی را ایجاد می‌کنیم که چگونگی عملیات رمزگذاری را به شما نمایش می‌دهد.

1. <?php
2. 
3. namespace App\Http\Controllers;
4. 
5. use Illuminate\Http\Request;
6. 
7. class EncryptController extends Controller
8. {
9. public function showSecret(Request $request)
10. {
11. $random = encrypt(50);
12. return view('test',compact('random'));
13. }
14. }

اکنون، یک ویو ایجاد می‌کنیم تا بتوانیم مقادیر رمزگذاری شده را نمایش دهیم.

1. @extends('layouts.app')
2. 
3. @section('content')
4. <div class="container">
5. <div class="row justify-content-center">
6. <div class="col-md-8">
7. <div class="card">
8. <div class="card-header">Dashboard</div>
9. 
10. <div class="card-body">
11. 
12. <p><b>Encrypted String:</b> {{ $random }}</p>
13. 
14. </div>
15. </div>
16. </div>
17. </div>
18. </div>
19. @endsection

نتیجه کار به صورت زیر خواهد بود:

رمزگذاری (encryption) در لاراول

رمزگشایی

برای رمزگشایی یک مقدار رمزگذاری شده، می‌توانید از تابع decrypt() استفاده کنید. اگر MAC نامعتبر باشد، نمی‌توانید مقدار را به درستی رمزگشایی کنید. این باعث رخ دادن exception یا استثنای “Illuminate\Contracts\Encryption\DecryptException” می‌شود.

1. use Illuminate\Contracts\Encryption\DecryptException;
2. 
3. try {
4. $encryptedValue = "eyJpdiI6IjU1WDUrZkNEU2xqNWJsUXg2NE5oclE9PSIsInZhbHVlIjoiY3VQWFBudjVBYUg3ekZYZVhLUVl4Zz09IiwibWFjIjoiNTQ5NGM5YzE0NzkwNGRiMzA4NjZiNmU5MDdkZGQ1NGFjNGRlODkyNWYzOTE2YjA1MjY1N2JhMWUxODZiZDk2MSJ9";
5. $decrypted = decrypt($encryptedValue);
6. } catch (DecryptException $e) {
7. //
8. }

رمزگذاری بدون سریالایز

تمام مقادیر رمزگذاری شده در طی رمزگذاری از طریق عملیات سریالایز (serializing) منتقل می شوند که امکان رمزگذاری اشیاء و آرایه‌ها را نیز فراهم می‌آورد. کلاینت‌های غیر PHP هنگام دریافت مقادیر رمزگذاری شده، باید مقادیر را از حالت سریالایز خارج کرده و به اصطلاح unserialize کنند.
اگر بخواهید عملیات رمزگذاری و رمزگشایی مقادیر را بدون سریالایز کردن انجام دهید، می‌توانید از متد‌های“encryptString” و “decryptString” مربوط به Crypt” facade" استفاده کنید.

1. use Illuminate\Support\Facades\Crypt;
2. 
3. // Encryptions
4. $encrypted = Crypt::encryptString('Hello world.');
5. 
6. // Decryption
7. $decrypted = Crypt::decryptString($encrypted);

 

دوره‌های آموزش طراحی سایت در لیداوب:

آموزش پایه لاراول

آموزش CSS

آموزش HTML مقدماتی

در این مقاله، به صورت مختصر به چگونگی انجام عملیات رمزگذاری در لاراول پرداخته شد. می‌توانید از این عملیات در برنامه‌های کاربردی خود استفاده کنید و همچنین می‌توانید مستندات رسمی لاراول در زمینه رمزگذاری در لاراول را نیز در لیداوب دنبال کنید و در صورت داشتن هر گونه سوال یا پیشنهادی آن را در بخش دیدگاه‌های سایت با ما به اشتراک بگذارید.

دیدگاه ها

دیدگاه ها : 0


متاسفانه فقط اعضای سایت قادر به ثبت دیدگاه هستند

رایگان

اشتراک گذاری در
ثبت امتیاز
5 (1 رای)

   لطفا صبر کنید ...