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

How to Crawl any website Meta Title and Meta Description in Laravel ?

1st step install below package. Next to create Controller First go to route and put below code Next go to controller and put below code Next go…

SQLSTATE[HY000] [2002] No such file or directory (Connection: mysql, SQL: insert into `oauth_clients` (`user_id`, `name`, `secret`

In this tutorial i’m going to solve the error SQLSTATE[HY000] [2002] No such file or directory (Connection: mysql, SQL: insert into oauth_clients (user_id, name, secret Error :-…

Top 20 Laravel Interview Question in 2024

In this tutorial im going share interview experience For laravel developer. A list of top frequently asked Laravel Interview Questions and answers are given below. Q #1) What is…

How to Get Google Analytics API key ?

In this tutorial we’re going to share how to get the google Analytics API key. I have shared in very easy way. First go enable Google analytics…

Youtube Subscriber Count in ReactJs

In this tutorial i’m going to learn how to count YouTube Subsribers count, views count as well, as define below. In order to install your app, first…

How to Disable Laravel’s Eloquent timestamps in laravel ?

In this tutorial we’re going to share how to disable the automatic created_at and updated_at timestamps in Laravel’s Eloquent models, along with explanations of different scenarios: 1st…

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