icedevml/php-itsdangerous

此包已被废弃,不再维护。没有建议的替代包。

1.0.0-stable 2017-07-14 11:46 UTC

This package is not auto-updated.

Last update: 2023-02-18 19:21:02 UTC


README

一个非常简单的库,类似于Python的itsdangerous模块的基本功能。提供了两个函数

// take $data, serialize it with JSON, append a HMAC signature to it and finally base64-encode it
Signing::dump($data, $secret, $hash_func='sha256')

// do the reverse: decode base64, read and validate the signature and unserialize JSON-encoded data
Signing::load($data, $secret, $hash_func='sha256')

可以与任何可以成功进行JSON序列化/反序列化的数据进行工作。

一个通过Signing::dump生成的令牌的用户

  • 可以 确定原始的已签名数据(除非你在签名之前使用AES加密,或者做类似的事情)
  • 不能 修改数据,因为这会使签名无效,因此Signing::load在加载时将抛出InvalidSignatureException
  • 不能 自己生成另一个令牌,假设他不知道共享密钥值(在这种情况下:some_random_secret

示例

use IceDev\itsdangerous\Signing;

$s = new Signing('some_random_secret');

$s->dump(['foo', 'bar']);
// returns: string(104) "WyJmb28iLCJiYXIiXS41ZTkxYjQ3M2E1MmEwNDg3YWNhZGM4MGExYjQwYjIwNDM4NThjODg2NjI3ZDNiODM5OTIzN2E4ZTM1ZGM2ZmIy"

$s->load('WyJmb28iLCJiYXIiXS41ZTkxYjQ3M2E1MmEwNDg3YWNhZGM4MGExYjQwYjIwNDM4NThjODg2NjI3ZDNiODM5OTIzN2E4ZTM1ZGM2ZmIy');
// returns: array(2) { [0]=> string(3) "foo", [1]=> string(3) "bar" }