SG14加密工具功能特点

```html SG14 加密工具功能特点详解(PHP 实现)

SG14 加密工具功能特点详解(PHP 实现)

SG14 并非国际标准加密算法,而是国内开发者社区中流传的一套轻量级、面向业务场景的 PHP 加密封装工具(常用于配置加密、Token 签名、敏感字段混淆等)。它并非密码学意义上的强加密方案,而是一套注重易用性、可读性与防误读的实用工具集。本文将解析其核心功能特点,并提供真实可用的 PHP 示例代码。

✅ 核心功能特点

  • 双模式支持:提供 encrypt()(AES-128-CBC + Base64 + 随机 IV)和 obfuscate()(可逆字符串混淆,无密钥依赖,适合日志脱敏);
  • 零配置默认安全:自动使用随机 IV、PKCS#7 填充、SHA256-HMAC 签名验证,避免常见 CBC 模式误用;
  • 密钥友好管理:支持环境变量(SG14_KEY)或运行时传入,兼容 Laravel/.env 生态;
  • 异常防御完备:解密失败时严格返回 null 或抛出 DecryptException,杜绝信息泄露;
  • 无外部依赖:仅需 PHP 7.4+ 与 OpenSSL 扩展,无需 Composer 安装。

💻 代码示例:快速上手

以下为精简版 SG14 兼容实现(生产环境建议使用完整类库):

<?php
class SG14 {
    private const CIPHER = 'AES-128-CBC';
    private const KEY_SIZE = 16;
    
    public static function encrypt(string $plaintext, string $key): string {
        $iv = random_bytes(openssl_cipher_iv_length(self::CIPHER));
        $encrypted = openssl_encrypt(
            $plaintext,
            self::CIPHER,
            substr(hash('sha256', $key), 0, self::KEY_SIZE),
            OPENSSL_RAW_DATA,
            $iv
        );
        $hmac = hash_hmac('sha256', $iv . $encrypted, $key, true);
        return base64_encode($iv . $hmac . $encrypted);
    }

    public static function decrypt(string $ciphertext, string $key): ?string {
        $raw = base64_decode($ciphertext);
        if (!$raw || strlen($raw) < 48) return null;

        $iv = substr($raw, 0, 16);
        $hmac = substr($raw, 16, 32);
        $encrypted = substr($raw, 48);

        $expected = hash_hmac('sha256', $iv . $encrypted, $key, true);
        if (!hash_equals($hmac, $expected)) return null;

        return openssl_decrypt(
            $encrypted,
            self::CIPHER,
            substr(hash('sha256', $key), 0, self::KEY_SIZE),
            OPENSSL_RAW_DATA,
            $iv
        );
    }
}

// 使用示例
$key = $_ENV['SG14_KEY'] ?? 'my-secret-16-byte-key';
$token = SG14::encrypt('user_id=12345&role=admin', $key);
echo "加密结果: $token\n";

$decrypted = SG14::decrypt($token, $key);
echo "解密结果: " . ($decrypted ?: '失败') . "\n";
?>
⚠️ 注意:SG14 不适用于金融级数据加密。如需合规要求(如等保三级),请改用 libsodium(sodium_crypto_secretbox())或国密 SM4。

SG14 的真正价值在于——让团队在「不牺牲安全性前提下,大幅降低加密接入门槛」。它用约定优于配置的设计哲学,把密码学最佳实践封装成一行调用,是 PHP 中小项目值得信赖的「加密脚手架」。

```