SG13加密工具应用场景

```html SG13加密工具在PHP中的典型应用场景

SG13加密工具在PHP中的典型应用场景

SG13(SecureGuard-13)并非国际标准算法,而是国内某安全团队开源的轻量级对称加密封装库(基于AES-256-CBC + HMAC-SHA256双校验机制),专为Web应用中敏感数据的“场景化防护”而设计。其核心优势在于:自动密钥派生、防重放时间戳、可配置的过期策略及零依赖纯PHP实现(PHP 7.4+)。以下为三大典型PHP应用场景与实践示例。

1. 用户敏感信息临时令牌生成(如密码重置链接)

避免明文token泄露风险,SG13可将用户ID、邮箱、时效等结构化数据加密为短时有效令牌:

<?php
require_once 'vendor/autoload.php';
use SG13\Encryptor;

// 配置主密钥(建议从环境变量读取)
$masterKey = $_ENV['SG13_MASTER_KEY'] ?? 'your-32-byte-secret-key-here-12345678';

$encryptor = new Encryptor($masterKey);

// 生成带过期时间的重置令牌(15分钟有效期)
$payload = [
    'uid' => 12345,
    'email' => 'user@example.com',
    'type' => 'reset',
    'exp' => time() + 900 // 15分钟
];
$token = $encryptor->encrypt($payload, ['ttl' => 900]);

// 输出示例:eyJhbGciOiJBMjU2IiwiZXhwIjoxNzE1MjYwODAwfQ.8aFk...(URL安全Base64)
echo "Reset Token: " . $token;
?>

2. API接口请求签名与参数加密

防止API请求被篡改或重放。客户端加密参数,服务端解密并验证时间戳:

<?php
// 服务端验证逻辑(如 Laravel 中间件)
try {
    $decrypted = $encryptor->decrypt($request->header('X-Encrypted-Data'));
    
    if (time() > ($decrypted['exp'] ?? 0)) {
        throw new Exception('Request expired');
    }
    
    // 安全处理业务逻辑...
    $user = User::find($decrypted['uid']);
} catch (Exception $e) {
    http_response_code(401);
    echo json_encode(['error' => 'Invalid or expired request']);
}
?>

3. 数据库字段级加密(如手机号、身份证号)

满足《个人信息保护法》要求,在存储前加密,查询时按需解密(避免全表扫描):

注意:生产环境务必使用独立密钥管理(如Vault),且禁止在日志中输出明文解密结果。

SG13通过简洁的API降低安全落地门槛,但切记:加密不能替代权限控制与传输层安全(HTTPS)。合理搭配使用,方能构建纵深防御体系。

```