VVXYZ.COM PHP加密服务介绍
VVXYZ.COM 提供轻量、安全、符合现代 PHP 最佳实践的加密服务组件,专为中小项目快速集成设计。它不依赖庞大框架,仅需单文件引入,即可实现 AES-256-GCM 加密、安全随机密钥生成、防篡改签名验证等核心能力,兼容 PHP 7.4+(推荐 PHP 8.1+)。
核心特性
- ✅ 基于 OpenSSL 的
AES-256-GCM加密,提供机密性与完整性双重保障 - ✅ 自动处理 IV(nonce)生成与嵌入,无需手动管理
- ✅ 支持密钥派生(PBKDF2 + SHA256),可从密码字符串安全生成密钥
- ✅ 内置防重放时间戳校验与签名验证(HMAC-SHA256)
- ✅ 全部方法严格类型提示,抛出明确异常(
EncryptionException)
快速上手:代码示例
下载 VvxyzCrypto.php(官方 SDK)后,直接引入使用:
<?php
require_once 'VvxyzCrypto.php';
use Vvxyz\Crypto;
// 示例1:使用密码派生密钥加密敏感数据
$password = 'My$tr0ngP@ssw0rd!';
$data = 'user_id=12345&plan=premium&expires=2025-12-31';
try {
$encrypted = Crypto::encryptWithPassword($data, $password);
echo "密文(Base64): " . $encrypted . "\n";
// 解密验证
$decrypted = Crypto::decryptWithPassword($encrypted, $password);
echo "明文还原: " . $decrypted . "\n"; // 输出原始数据
} catch (Exception $e) {
error_log("加密失败: " . $e->getMessage());
}
// 示例2:使用预生成密钥(推荐用于服务端通信)
$key = Crypto::generateKey(); // 返回32字节随机密钥(binary)
$payload = ['token' => 'abc123', 'iat' => time()];
$json = json_encode($payload, JSON_UNESCAPED_UNICODE);
$sealed = Crypto::seal($json, $key); // 返回 base64-encoded string
echo "密封包: " . $sealed . "\n";
// 验证并解封(自动校验时间戳±300秒)
if ($unsealed = Crypto::unseal($sealed, $key)) {
echo "解封成功: " . $unsealed . "\n";
}
?>
💡 安全提示:
•
encryptWithPassword() 适用于用户侧密码加密场景(如临时令牌),但生产环境建议使用 seal()/unseal() 配合环境变量管理密钥;
• 密钥请通过 $_ENV['ENCRYPTION_KEY'] 或配置中心注入,切勿硬编码;
• 所有异常均继承自 Vvxyz\EncryptionException,便于统一日志与监控。
为什么选择 VVXYZ.COM?
相比原生 openssl_encrypt(),VVXYZ 加密服务封装了 IV 管理、填充、编码、错误归一化等易错环节;相比 Laravel Encrypter 或 Symfony Security,它无框架耦合、零依赖、体积小于 15KB。其设计哲学是:“让安全成为默认,而非选项”。
访问 https://vvxyz.com/crypto 获取 SDK、API 文档及在线测试工具。开源协议为 MIT,欢迎贡献与反馈。
—— 安全不是功能,而是每行代码的责任。
```