php101/php101

由 basetwo technology 开发的库

1.0.0 2023-07-23 15:48 UTC

This package is auto-updated.

Last update: 2024-09-30 02:13:11 UTC


README

SecureVault 类提供了加密数据、生成数字签名以及处理加密文件的功能。它使用 sodium_crypto_secretbox 加密算法以及 Firebase\JWT\JWT 库进行数字签名的生成和验证。

类方法

  1. cipher(string $value, string $key): string

    • 使用提供的密钥加密给定的字符串。
    • 参数
      • $value (string): 要加密的字符串。
      • $key (string): 加密密钥。
    • 返回
      • 加密后的字符串。
  2. deCipher(string $cipher, string $key): mixed

    • 解密加密的字符串,并返回原始明文字符串。
    • 参数
      • $cipher (string): 要解密的加密字符串。
      • $key (string): 解密密钥。
    • 返回
      • 解密后的明文字符串或解密失败时返回 false。
  3. retrieveJWTFromFile(string $data): string|bool

    • 从给定的文件内容中检索 JWT(JSON Web Token)。
    • 参数
      • $data (string): 加密文件的内容。
    • 返回
      • 如果内容中找到 JWT,则返回 JWT,如果没有找到,则返回 false。
  4. fileDecipher(string $file, string $key): array|bool

    • 解密加密文件的内容,并将解密后的数据作为数组返回。
    • 参数
      • $file (string): 加密文件的路径。
      • $key (string): 解密密钥。
    • 抛出
      • 如果文件不存在、文件名格式无效或包含无效的 JSON 内容,则抛出异常。
    • 返回
      • 如果解密和验证成功,则返回解密后的数据数组,否则返回 false。
  5. verifySignature(string $fileContent, string $jwt, string $secreteKey): bool

    • 使用提供的 JWT 和密钥验证文件内容的数字签名。
    • 参数
      • $fileContent (string): 加密文件的内容。
      • $jwt (string): 要验证的 JSON Web Token (JWT)。
      • $secreteKey (string): 用于验证的秘密密钥。
    • 返回
      • 如果签名有效,则返回 true,否则返回 false。
  6. generateSignature(string $data, string $key, array $extra = []): string

    • 使用提供的密钥为给定数据生成数字签名(JWT)。
    • 参数
      • $data (string): 要签名的数据。
      • $key (string): 用于签名的密钥。
      • $extra (array): 要包含在签名负载中的附加数据。 (可选)
    • 返回
      • 生成的数字签名(JWT)字符串。
  7. encryptToFile(array $fileContent, string $key, string $dir = DIR, string $prefix = 'config_'): bool|int

    • 加密提供的文件内容,生成数字签名,并将其写入文件。
    • 参数
      • $fileContent (array): 要加密并写入文件的文件内容。
      • $key (string): 加密密钥。
      • $dir (string): 加密文件应存储的目录。 (可选)
      • $prefix (string): 要添加到文件名的前缀。 (可选)
    • 抛出
      • 如果给定的目录不是有效的目录,则抛出异常。
      • 如果加密或签名生成失败,则抛出异常。
    • 返回
      • 成功写入文件的字节数,或在发生错误时返回 false。

附加说明

  • SecureVault 类提供了安全加密、解密和文件操作的功能。
  • 它使用 sodium_crypto_secretbox 算法进行加密,该算法被认为是安全的。
  • 数字签名(JWT)使用 Firebase\JWT\JWT 库的 HS256 算法生成和验证。
  • 正确的密钥管理和敏感信息(如加密密钥和秘密密钥)的安全存储对于保持加密数据的安全性至关重要。
  • 应执行输入验证和清理,以防止安全漏洞。
  • 建议遵循安全的编码实践并执行安全评估,以确保应用程序的整体安全性。

有关更多信息,请参阅类文档和代码注释。