northlands / permuteseq
一个小型的PHP库,用于混淆数字。
v0.2
2022-09-05 10:28 UTC
Requires
- php: ^8.1|^8.0
Requires (Dev)
- pestphp/pest: ^1.21
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-14 14:09:14 UTC
README
一个小型的PHP库,用于混淆数字。当您不想将数据库的数字ID暴露给用户时使用它。
排列是冲突免费和完全确定的。随机外观的效果是由于加密,而不是PRNG。使用相同的密钥相同的边界范围将始终产生相同的输出。
安装
您可以通过composer安装此包
composer require northlands/permuteseq
用法
$permuteseq = new Permuteseq(123456789012345, 1000, 9999); // Range 1000-9999 $encoded = $permuteseq->encode(1000); // 1446 $decoded = $permuteseq->decode($encoded); // 1000
测试
composer test
为了确保与Postgres扩展的兼容性,包含了一个集成测试
vendor/bin/pest --group=integration
集成测试需要一个运行中的Postgres数据库,其中已安装扩展
docker build -t postgres tests docker run --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=local -d postgres psql> CREATE EXTENSION permuteseq;
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
免责声明
该库不应被视为加密强度高或用于敏感数据。
致谢
-
https://github.com/dverite/permuteseq
Daniel Vérité的PostgreSQL扩展。 -
https://czep.net/21/obfuscate.html
关于如何混淆数据库主键的文章。
替代方案
-
https://github.com/ioleo/cryptomute
另一个支持多种加密算法(DES、AES和Camellia)的格式保持加密库,但性能较慢。 -
https://github.com/vinkla/hashids
从数字生成类似YouTube的ID。可以被限制为数字-字母,但返回的字符串是"09284"
而不是安全的整数。 -
https://github.com/jenssegers/optimus
基于Knuth整数散列的超级快速数字混淆。然而,范围只能通过4-62位定义。
许可
MIT许可证(MIT)。有关更多信息,请参阅 许可文件。