How to add digital signatures in laravel |
How to add digital signatures in laravel |

How to add digital signatures in laravel


Digital signatures play a crucial role in ensuring the authenticity and integrity of electronic documents. In Laravel, adding digital signatures to your application can enhance security and provide a reliable way to verify the origin of files. In this article, we will guide you through the process of adding digital signatures in Laravel, accompanied by practical code examples that are easy to understand.


Before we begin, ensure that you have the following:

  1. Laravel installed on your machine.
  2. Basic understanding of Laravel’s structure and components.

Step 1: Install Required Packages

Laravel provides a package called “spatie/laravel-sign” that simplifies the process of adding digital signatures. Install it using Composer:

composer require spatie/laravel-sign

Step 2: Configure Laravel Sign

After installation, you need to publish the configuration file to customize the package settings:

php artisan vendor:publish --provider="Spatie\Sign\SignServiceProvider" --tag="config"

This command will generate a sign.php file in the config directory. Open this file and configure it according to your needs.

Step 3: Generate the Private and Public Keys

Digital signatures require a pair of keys – a private key for signing and a public key for verification. Laravel Sign provides an Artisan command to generate these keys:

php artisan sign:generate-keys

This will create private.key and public.key files in the storage directory.

Step 4: Sign the Data

Now, let’s sign some data using the private key. In your controller or wherever you need to sign data:

use Spatie\Sign\Signer;

public function signData()
    $dataToSign = "Hello, this is some data to sign.";

    $signer = app(Signer::class);
    $signature = $signer->sign($dataToSign);

    // Save or send $dataToSign and $signature as needed

Step 5: Verify the Signature

To verify the signature, use the public key. In another part of your application:

use Spatie\Sign\Signer;

public function verifySignature()
    $dataToVerify = "Hello, this is some data to sign.";
    $receivedSignature = "theReceivedSignatureStringHere";

    $signer = app(Signer::class);
    $isValid = $signer->verify($dataToVerify, $receivedSignature);

    if ($isValid) {
        // Signature is valid
    } else {
        // Signature is not valid


Adding digital signatures in Laravel is a straightforward process with the “spatie/laravel-sign” package. By following the steps outlined in this article, you can enhance the security of your application and ensure the integrity of your electronic documents. Remember to handle keys securely and tailor the configuration to meet your specific requirements. Happy coding!

Leave a Reply