mindplay/keypack

打包/解包整数和GUID键为较短的字符串

1.0.0 2016-08-15 13:37 UTC

This package is auto-updated.

Last update: 2024-08-25 19:42:28 UTC


README

此库将整数、UUID和GUID键打包为较短的字符串,例如用于用户界面URL。

PHP Version Build Status

使用方法

提供了三个类,IntPackerUUIDPackerGUIDPacker,每个类都能打包/解包特定类型的ID。每个类的接口基本相同,但接受/返回不同类型的键。

以下是打包/解包UUID到较短的字符串的示例

$packer = new UUIDPacker();

echo $packer->pack("7eb6de1e-65ef-4fb7-baff-c0732c1c4614"); // => "py6dWN6dgKR8cGVz73zDiT"

echo $packer->unpack("py6dWN6dgKR8cGVz73zDiT"); // => "7eb6de1e-65ef-4fb7-baff-c0732c1c4614" 

您可以使用不同的表示法来打包键。默认的是legible,它生成可读且长度合理的键 - 更多选项请见此处

您还可以在打包键中添加冗余,以防止输入错误,并使猜测打包键更困难。

以下是打包整数键到base64并添加4字节冗余的示例

$packer = new IntPacker('base64');

$packer->setRedundancy(4, 'super secret salt');

echo $packer->pack(123456); // => "7yg6HR"

echo $packer->unpack("7yg6HR"); // => (int) 123456

请注意,如果冗余检查失败,unpack()将返回null