Encryption and Decryption using Crypt class in Laravel ?

In this tutorial we ‘re going to encrypt and decrypt class using CRYPT class in laravel.

First to create models

Php artisan make:model Transaction -mc

Go to migration file and put below code

$table->string('card_name');
 $table->string('card_no');
 $table->string('exp_month');
 $table->string('cvv');

Next to migrate the table

php artisan migrate

Next go to route and paste below code

Route::get('transactions','TransactionController@index')->name('index');

Next go to controller and paste below function.

public function index(){
        return view('transactions');
    }

Next to create view file

transactions.blade.php 

Put below code in blade page

@extends('layouts.app')
@section('content')
<div class="container">
    <div class="row">
    <form action="{{ route('transaction.store')}}" method="POST">
    @csrf
    <div class="form-group">
        <input type="text" class="form-control" name="card_name" placeholder="enter card name">
    </div>
    <div class="form-group">
        <input type="text" class="form-control" name="card_no" placeholder="enter card no">
    </div>
    <div class="form-group">
        <input type="text" class="form-control" name="exp_month" placeholder="enter exp months">
    </div>
    <div class="form-group">
        <input type="text" class="form-control" name="cvv" placeholder="enter cvv no">
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
</form>
    </div>
</div>
@endsection

Next go to controller and paste below store function

public function store(Request $request)
    {
        $transaction = new Transaction();
        $transaction->card_name = $request->card_name;
        $transaction->card_no = $request->card_no;
        $transaction->exp_month = $request->exp_month;
        $transaction->cvv = $request->cvv;
        $transaction->save();
        return redirect()->route('index');
    }

Next to create store route

Route::post('transactions/store','TransactionController@store')->name('transaction.store');

Next to add encrypt facades

use Illuminate\Support\Facades\Crypt;

Got to transaction model and paste below code

use Illuminate\Support\Facades\Crypt;

Go to transaction model and paste below code

<?php
namespace App;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Encryption\DecryptException;

class Transaction extends Model
{
    // for using data encrypt 
    
    public function setCardNoAttribute($value)
    {
        $this->attributes['card_no'] = Crypt::encryptString($value);
    }
    public function setExpMonthAttribute($value)
    {
        $this->attributes['exp_month'] = Crypt::encryptString($value);
    }
    public function setCvvAttribute($value)
    {
        $this->attributes['cvv'] = Crypt::encryptString($value);
    }
    public function setCardNameAttribute($value)
    {
        $this->attributes['card_name'] = Crypt::encryptString($value);
    }
    // for decrypt data using
    public function getCardNoAttribute($value)
    {
        try {
            return Crypt::decryptString($value);
        }catch(\Exception $e){
            return $value;
        }
    }
    public function getExpMonthAttribute($value)
    {
        try {
            return Crypt::decryptString($value);
        }catch(\Exception $e){
            return $value;
        }
    }
    public function getCvvAttribute($value)
    {
        try {
            return Crypt::decryptString($value);
        }catch(\Exception $e){
            return $value;
        }
    }
    public function getCardNameAttribute($value)
    {
        try {
            return Crypt::decryptString($value);
        }catch(\Exception $e){
            return $value;
        }
    }
    
}

Now insert data and check that is encrypted or not

Now encrypted data stored successfully.

Hi I am Amit Kumar Thakur Experienced as s Software Developer with a demonstrated history of working in the information technology and services industry. Skilled in HTML, CSS, Bootstrap4, PHP, Laravel-9 , REST API,FB API,Google API, Youtube Api, Bitbucket,Github,Linux and jQuery. Strong engineering professional focused in Computer/Information Technology Administration and Management. Currently my profile is to Software Developer, analyze the requirement, creating frame for web application, coding and maintenance.

Related Posts

Could not fetch https://api.github.com/repos/Setasign/FPDI/zipball/

When I composer update in Laravel its throwing error could not fetch issues so let’s start to finish this issues. 1st step go to GitHub setting section….

Error: error:0308010C:digital envelope routines::unsupported

In this tutorial I’m going to share how to solve Error: error:0308010C:digital envelope routines::unsupported. Just copy below code and run your terminal. After run above all code…

API calls from the server require an appsecret_proof argument

In this tutorial im going to solve this issue API calls from the server require an appsecret_proof argument. 1st step go to developer facebook advance setting and…

How to Delete All Records Older Than 30 Days in Laravel 10 ?

In Laravel, you can use the Eloquent ORM to delete records older than a certain number of days. Here’s an example of how you can delete all…

How to safely remove Laravel Debugbar ?

What is Laravel Debugbar ? Laravel Debugbar is a package for the Laravel PHP framework that provides a debug bar or toolbar for your application. It offers…

Example of __construct and __destruct in laravel ?

In Laravel, PHP classes can have a constructor and destructor like any other PHP class. The constructor is called when an object is created, and the destructor…

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x