petalbranch / petal-cipher
Petal Cipher is a lightweight reversible encryption library based on custom transformation rules.
v1.3.0
2025-11-05 04:15 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^12
README
语言: 👉 简体中文 | English
简介
PetalBranch/petal-cipher 是一个基于转换规则的轻量级可逆的加密库。
安装
PHP 版本要求:>= 7.1
⚠ 开发环境:PHP 8.3 , 低于此版本请先自行测试。
-
使用 Composer 安装(推荐)
composer require petalbranch/petal-cipher
-
手动下载
从 GitHub 仓库下载最新版本 ZIP 文件:
https://github.com/PetalBranch/petal-cipher
将所有内容解压到项目目录,例如vendor/PetalBranch/petal-cipher
在 PHP 文件中引入自动加载文件或手动 require:use Petalbranch\PetalCipher\Utils; // 引入文件 require_once './vendor/petalbranch/petal-cipher/src/Utils.php'; // 手动引入 Utils::requireOnceFiles();
如何使用
-
使用类文件
<?php use Petalbranch\PetalCipher\PetalCipher; // 引入 PetalCipher 类 $pc = new PetalCipher('your_seed'); // 创建 PetalCipher 实例并传入种子 $encrypted = $pc->encrypt('your_data'); // 加密您的数据 $decrypted = $pc->decrypt($encrypted); // 解密您的数据 echo $pc->getSeed(); // 获取您设置的种子 $pc->updateSeed('your_new_seed'); // 更新种子 $encrypted = $pc->encrypt('your_data'); // 使用新的种子加密数据 $decrypted = $pc->decrypt($encrypted); // 使用新的种子解密数据 $pc->customDict("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); // 自定义字典 $encrypted = $pc->encrypt('your_data'); // 使用新的种子加密数据 $decrypted = $pc->decrypt($encrypted); // 使用新的种子解密数据
-
使用助手函数
<?php // 默认种子 方式1 $encrypted = petal_encrypt('your_data'); // 加密您的数据 $decrypted = petal_decrypt($encrypted); // 解密您的数据 // 默认种子 方式2 (和方式1一样,但是没必要这么写) $seed = petal_seed(); $encrypted = petal_encrypt('your_data',$seed); // 加密您的数据 $decrypted = petal_decrypt($encrypted,$seed); // 解密您的数据 // 自定义种子 $seed = petal_seed('your_seed'); // 设置种子 $encrypted = petal_encrypt('your_data',$seed); // 加密您的数据 $decrypted = petal_decrypt($encrypted,$seed); // 解密您的数据 // 自定义字典 $seed = petal_custom_dict("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); $encrypted = petal_encrypt('your_data',$seed); // 加密您的数据 $decrypted = petal_decrypt($encrypted,$seed); // 解密您的数据
示例
-
运行代码
<?php $pc = new PetalCipher(); $encrypt = $pc->encrypt('hello world'); echo "E1: ".$encrypt."\n"; $decrypt = $pc->decrypt($encrypt); echo "D1: ".$decrypt."\n"; $encrypt = $pc->encrypt('hello world'); echo "E2: ".$encrypt."\n"; $decrypt = $pc->decrypt($encrypt); echo "D2: ".$decrypt."\n";
-
运行结果
E1: yDT5rGDOaIe/HIYQGDb= D1: hello world E2: IKGQijK7R84jOrowjKs= D2: hello world
测试示例
- 测试代码
<?php // 功能测试 include('./vendor/autoload.php'); $seed = petal_seed("123456"); $string = "hello, world."; $encrypt = petal_encrypt($string, $seed); $decypt = petal_decrypt($encrypt, $seed); echo "PV: " . phpversion() . "\n"; echo "O: " . $string . "\n"; echo "E: " . $encrypt . "\n"; echo "D: " . $decypt . "\n";
<?php // 跨PHP版本兼容性测试 include('./vendor/autoload.php'); $seed = petal_seed("123456"); // 当前PV echo "PV: " . phpversion() . "\n"; // 以下数据由 PV: 7.4.9 生成 echo petal_decrypt("Ye0HcyePXHa/nj+B49x3cU==", $seed) . "\n"; echo petal_decrypt("02bKcp2NXKuZ6KtdsrHjey==", $seed) . "\n"; echo petal_decrypt("x+Huch+G5ujzX2Sew8a1lN==", $seed) . "\n"; echo petal_decrypt("4as/c+a7X/DPCljxXgw9zl==", $seed) . "\n"; echo petal_decrypt("DAo4JcAHr4FDN4zjfprL1b==", $seed) . "\n"; echo petal_decrypt("ZEXTc3EoCTmSbH9FQBiOLv==", $seed) . "\n"; echo petal_decrypt("WiCUJEiMrUP51hmZbYQtkL==", $seed) . "\n"; echo petal_decrypt("x+Huch+G5ujCXISew8a1lN==", $seed) . "\n"; echo petal_decrypt("PgNWJ8gXCWd/vLkm7aGeO6==", $seed) . "\n"; echo petal_decrypt("suIvctu5XvoJJkYHqZ/ra+==", $seed) . "\n"; echo petal_decrypt("HtK7JOtWD7YlqLB2/FuA+h==", $seed) . "\n"; echo petal_decrypt("AlxaJNltCa3DZf5cF6zVKP==", $seed) . "\n";
- 运行结果
PS D:\develop\test\test_petalcipher> php index.php PV: 8.3.17 O: hello, world. E: I7z3JG7Sr3VPkS0KLXv4ut== D: hello, world.
PS D:\develop\test\test_petalcipher> D:\develop\devenv\php\php7.4.9nts\php.exe index.php PV: 7.4.9 O: hello, world. E: 4as/c+a7X/DPC8jxXgw9zl== D: hello, world.
PS D:\develop\test\test_petalcipher> D:\develop\devenv\php\php7.4.9nts\php.exe index.php PV: 8.3.17 hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world.
PS D:\develop\test\test_petalcipher> D:\develop\devenv\php\php7.4.9nts\php.exe index.php PV: 7.4.9 hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world. hello, world.