PHPackages                             liyu/signature - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. liyu/signature

ActiveLibrary[Security](/categories/security)

liyu/signature
==============

v0.4.1(7y ago)2611.5k↓100%8MITPHPPHP &gt;=7.0

Since Dec 16Pushed 7y ago1 watchersCompare

[ Source](https://github.com/liyu001989/signature)[ Packagist](https://packagist.org/packages/liyu/signature)[ RSS](/packages/liyu-signature/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (4)Versions (19)Used By (0)

Laravel signature
=================

[](#laravel-signature)

Use HMAC or RSA to sign data for Laravel and lumen;

[![Latest Stable Version](https://camo.githubusercontent.com/b369fad2c345f726b1c04688d6fecf6b67cf321ff028e8437b59f597f2660bfe/68747470733a2f2f706f7365722e707567782e6f72672f6c6979752f7369676e61747572652f76657273696f6e)](https://packagist.org/packages/liyu/signature)[![Total Downloads](https://camo.githubusercontent.com/c2d1a945ecc8352765be25c1568ad14a977c7b32c6b1e60865c0680c677c01c4/68747470733a2f2f706f7365722e707567782e6f72672f6c6979752f7369676e61747572652f646f776e6c6f616473)](https://packagist.org/packages/liyu/signature)[![StyleCI](https://camo.githubusercontent.com/3d979e385be2e6b0c19d90e02e5bb7ac4d6d5899694b184f6ff5a7591854f8fb/68747470733a2f2f7374796c6563692e696f2f7265706f732f37363236313031362f736869656c64)](https://styleci.io/repos/76261016096)

Install
-------

[](#install)

For Laravel &lt; 5.5, please use the tag [0.2.10](https://github.com/liyu001989/signature/tree/v0.2.10)

### laravel

[](#laravel)

`composer require liyu/signature`

### lumen

[](#lumen)

- bootstrap/app.php

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

    ```

### config

[](#config)

- you can use these in your ENV

    ```
      // 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

    ```
      laravel
      php artisan vendor:publish

      lumen
      copy vendor/liyu/signature/src/config/config.php config/signature.php

    ```

Usage
-----

[](#usage)

sign

```
$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

```
// 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
----------

[](#sign-steps)

- convert array data

    ```
      // 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。

    ```
      hmac  => hmac($algo, $convertData, $key);
      // outputs lowercase hexits

      rsa => base64_encode(openssl_sign_string);

    ```

License
-------

[](#license)

[MIT LICENSE](https://github.com/liyu001989/signature/blob/master/LICENSE)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~128 days

Total

16

Last Release

2807d ago

PHP version history (2 changes)v0.1.0PHP &gt;=5.6.4 || ^7.0

v0.3.0PHP &gt;=7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4f209eb772df9da353f457ff3fe27cfbf9101574b27ace3ffe0304672584198e?d=identicon)[liyu](/maintainers/liyu)

---

Top Contributors

[![liyu001989](https://avatars.githubusercontent.com/u/2981799?v=4)](https://github.com/liyu001989 "liyu001989 (43 commits)")

---

Tags

hmaclaravellumenrsasignature

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/liyu-signature/health.svg)

```
[![Health](https://phpackages.com/badges/liyu-signature/health.svg)](https://phpackages.com/packages/liyu-signature)
```

###  Alternatives

[illuminate/encryption

The Illuminate Encryption package.

9229.7M280](/packages/illuminate-encryption)[spatie/laravel-ciphersweet

Use ciphersweet in your Laravel project

416718.4k1](/packages/spatie-laravel-ciphersweet)[genealabs/laravel-governor

Managing policy and control in Laravel.

201262.8k](/packages/genealabs-laravel-governor)[ercsctt/laravel-file-encryption

Secure file encryption and decryption for Laravel applications

642.6k](/packages/ercsctt-laravel-file-encryption)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
