ap-lib/public-id 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ap-lib/public-id

Composer 安装命令:

composer require ap-lib/public-id

包简介

A small PHP library for generating short, public-friendly integer IDs from internal numeric IDs. Designed to hide system scale and client-specific patterns while keeping IDs compact and reversible.

README 文档

README

MIT License

A small PHP library for generating short, public-friendly integer IDs from internal numeric IDs.

Designed to hide system scale and client-specific patterns while keeping IDs compact and reversible.

❗️Not for security purposes.

If clients know you're using UnsafePublicID, they might infer ID ranges or volumes. Use SafePublicID for stronger obfuscation with a mask.

It's still reversible and not secure, but the effort required to reverse-engineer it is significantly greater.

Installation

composer require ap-lib/public-id

Features

  • Encode numeric IDs into non-sequential public integers
  • Keep public-facing IDs short and opaque
  • Optional masking layer to prevent reverse-engineering
  • Fully reversible with decode()

Requirements

  • PHP 8.3 or higher

Getting started

Basic usage with UnsafePublicID

use AP\PublicID\UnsafePublicID;

$digits_divider = 2;
$original_id = 1000;

$public_id = UnsafePublicID::encode(
    int: $original_id,
    digits_divider: $digits_divider
);

$decoded_original_id = UnsafePublicID::decode(
    public: $public_id,
    digits_divider: $digits_divider
);

// $decoded_original_id equal $original_id

$public_id_2 = UnsafePublicID::encode(
    int: $original_id,
    digits_divider: $digits_divider
);

// $public_id equal $public_id_2

Safer encoding with SafePublicID

use AP\PublicID\SafePublicID;

$secret_mask_from_envs = 902734092;

$safePublicId = new SafePublicID(
    mask: $secret_mask_from_envs
);

$digits_divider = 2;
$original_id = 1000;

$public_id = $safePublicId->encode(
    int: $original_id,
    digits_divider: $digits_divider
);

$decoded_original_id = $safePublicId->decode(
    int: $public_id,
    digits_divider: $digits_divider
);

// $decoded_original_id equal $original_id

$public_id_2 = $safePublicId->encode(
    int: $original_id,
    digits_divider: $digits_divider
);


// $public_id equal $public_id_2

License

This library is open-sourced software licensed under the MIT license.

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-22