PHP library for generating and parsing license
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Fix typos in thrown exceptions Feb 11, 2019
tests Fix tests Feb 9, 2019
.editorconfig Refactor code Feb 9, 2019
.gitignore Initial commit Feb 9, 2019
.travis.yml Tests on php 7.3 Feb 12, 2019
LICENSE.md Update license Feb 9, 2019
README.md
composer.json Update composer.json Feb 10, 2019
composer.lock Initial commit Feb 9, 2019
phpunit.xml Initial commit Feb 9, 2019

README.md

php-license is a library for generating and parsing license
PHP License

Codecov Build Status

php-license is a library for generating and parsing license.

Requirements

  • PHP >= 5.4
  • OpenSSL

Generating Key Pair

Make sure OpenSSL is configured on your machine.

  1. Generate the Private key file by running the following command:

    openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
  2. Run the following command to generate public key:

    openssl rsa -pubout -in private_key.pem -out public_key.pem

Installation

composer require ziishaned/php-license

Usage

Before running the following code make sure you have the public_key and private_key files.

Generating

Use the following code to generate the license key:

<?php

use Ziishaned\PhpLicense\PhpLicense;

$data = [
  "firstName" => "John",
  "lastName"  => "Doe",
  "email"     => "john_doe@email.com",
];

$privateKey = file_get_contents('path/to/private_key.pem');
$license    = PhpLicense::generate($data, $privateKey);

var_dump($license);

The above code will output the following result:

agW4Riht6xHEfbpDaZUcTCmZVHgGgCnzXc0+nqLAMjuS6ouuGQVv/JqjAuo89tUgTu3F7Q+WProPcNm1aXdavxj3xOxTJ3e2w0NSS09sBZONxG9MzzofqvYPCnu/I1WMLgaRXiiNJcz5WtqFLFSdTgehqU5VLO+eDhfWUeZ0EJlCtCLPu19hP56/+24+/tmnh4ySLc9tV+YGLYtpmt7Gyf+h3sbMO0SJMwe+XSuuTcUsIUDg3AQUlj7c4ctwhkdYkRyyjj27U09CgpWWgU5b3sXSqZ3DFdTNaP8sIVH3Y39b7/o+Gx7WIHzngCnczK58L81LTVwnkyzSBqKUT5oq4A==

Parsing

Use the following code to parse the license key:

<?php

use Ziishaned\PhpLicense\PhpLicense;

$license = 'agW4Riht6xHEfbpDaZUcTCmZVHgGgCnzXc0+nqLAMjuS6ouuGQVv/JqjAuo89tUgTu3F7Q+WProPcNm1aXdavxj3xOxTJ3e2w0NSS09sBZONxG9MzzofqvYPCnu/I1WMLgaRXiiNJcz5WtqFLFSdTgehqU5VLO+eDhfWUeZ0EJlCtCLPu19hP56/+24+/tmnh4ySLc9tV+YGLYtpmt7Gyf+h3sbMO0SJMwe+XSuuTcUsIUDg3AQUlj7c4ctwhkdYkRyyjj27U09CgpWWgU5b3sXSqZ3DFdTNaP8sIVH3Y39b7/o+Gx7WIHzngCnczK58L81LTVwnkyzSBqKUT5oq4A==';

$publicKey     = file_get_contents('path/to/public_key.pem');
$parsedLicense = PhpLicense::parse($license, $publicKey);

var_dump($parsedLicense);

The above code will output the following result:

{
    "firstName": "John",
    "lastName": "Doe",
    "email": "john_doe@email.com"
}

Contributions

Feel free to submit pull requests, create issues or spread the word.

License

MIT © Zeeshan Ahmad