2017 © Pedro PelĂĄez
 

library signature

image

liyu/signature

  • Thursday, December 28, 2017
  • by liyu
  • Repository
  • 1 Watchers
  • 18 Stars
  • 2,103 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 17 Versions
  • 16 % Grown

The README.md

Laravel signature

Use HMAC or RSA to sign data for Laravel and lumen;, (*1)

Latest Stable Version Total Downloads StyleCI, (*2)

Install

For Laravel < 5.5, please use the tag 0.2.10, (*3)

laravel

composer require liyu/signature, (*4)

lumen

  • bootstrap/app.php, (*5)

    $app->register(Liyu\Signature\Facade\Signature::class);

config

  • you can use these in your ENV, (*6)

    // default driver
    SIGNATURE_DRIVER
    
    // hmac algo and key
    SIGNATURE_HMAC_ALGO (default sha256)
    SIGNATURE_HMAC_KEY (default null)
    
    // rsa algo, public_key, private_key
    SIGNATURE_RSA_ALGO (default sha256)
    SIGNATURE_RSA_PUBLIC_KEY
    SIGNATURE_RSA_PRIVATE_KEY
  • if you want to use config, (*7)

    laravel
    php artisan vendor:publish
    
    lumen
    copy vendor/liyu/signature/src/config/config.php config/signature.php

Usage

sign, (*8)

$signature = Signature::sign('foobar');

$signature = Signature::setKey('foobar')->sign(['foo'=>'bar']);

$signature = Signature::signer('hmac')
    ->setAlgo('sha256')
    ->setKey('foobar')
    ->sign(['foo'=>'bar']);

$signature = Signature::signer('rsa')
    ->setPrivateKey('./private.pem')
    ->sign(['foo'=>'bar']);

verify, (*9)

// true or false

Signature::verify($signature, 'foobar');

Signature::setKey('foobar')->verify($signature, ['foo'=>'bar']);

Signature::signer('hmac')
    ->setAlgo('sha256')
    ->setKey('foobar')
    ->verify($sign, ['foo'=>'bar']);

Signature::signer('rsa')
    ->setPublicKey('./public.pem')
    ->verify($signature, ['foo'=>'bar']);

Sign Steps

  • convert array data, (*10)

    // origin
    $data = [
        'z' => 1,
        'a' => [
            'c' => 'c',
            'b' => 'b',
            'a' => [
                'b' => 'b',
                'a' => 'a'
            ]
        ],
    ];
    
    // ksort and convert to string
    $data = [
        'a' => [
            'a' => [
                'a' => 'a'
                'b' => 'b',
            ]
            'b' => 'b',
            'c' => 'c',
        ],
        'z' => '1',
    ];
    
    // json_encode
    {"a":{"a":{"a":"a","b":"b"},"b":"b","c":"c"},"z":"1"}
  • sign string。, (*11)

    hmac  => hmac($algo, $convertData, $key);
    // outputs lowercase hexits
    
    rsa => base64_encode(openssl_sign_string);

License

MIT LICENSE, (*12)

The Versions

28/12 2017

dev-master

9999999-dev

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yu Li

28/12 2017

v0.3.1

0.3.1.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yu Li

20/09 2017

v0.3.0

0.3.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yu Li

20/09 2017

dev-develop

dev-develop

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yu Li

12/01 2017
12/01 2017

dev-analysis-zRmMRx

dev-analysis-zRmMRx

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yu Li

28/12 2016
22/12 2016
22/12 2016
20/12 2016
20/12 2016
16/12 2016