php101 / php101
由 basetwo technology 开发的库
1.0.0
2023-07-23 15:48 UTC
Requires
- phpmailer/phpmailer: ^6.8
Requires (Dev)
- firebase/php-jwt: 6.5.0
This package is auto-updated.
Last update: 2024-09-30 02:13:11 UTC
README
SecureVault 类提供了加密数据、生成数字签名以及处理加密文件的功能。它使用 sodium_crypto_secretbox 加密算法以及 Firebase\JWT\JWT 库进行数字签名的生成和验证。
类方法
-
cipher(string $value, string $key): string
- 使用提供的密钥加密给定的字符串。
- 参数
- $value (string): 要加密的字符串。
- $key (string): 加密密钥。
- 返回
- 加密后的字符串。
-
deCipher(string $cipher, string $key): mixed
- 解密加密的字符串,并返回原始明文字符串。
- 参数
- $cipher (string): 要解密的加密字符串。
- $key (string): 解密密钥。
- 返回
- 解密后的明文字符串或解密失败时返回 false。
-
retrieveJWTFromFile(string $data): string|bool
- 从给定的文件内容中检索 JWT(JSON Web Token)。
- 参数
- $data (string): 加密文件的内容。
- 返回
- 如果内容中找到 JWT,则返回 JWT,如果没有找到,则返回 false。
-
fileDecipher(string $file, string $key): array|bool
- 解密加密文件的内容,并将解密后的数据作为数组返回。
- 参数
- $file (string): 加密文件的路径。
- $key (string): 解密密钥。
- 抛出
- 如果文件不存在、文件名格式无效或包含无效的 JSON 内容,则抛出异常。
- 返回
- 如果解密和验证成功,则返回解密后的数据数组,否则返回 false。
-
verifySignature(string $fileContent, string $jwt, string $secreteKey): bool
- 使用提供的 JWT 和密钥验证文件内容的数字签名。
- 参数
- $fileContent (string): 加密文件的内容。
- $jwt (string): 要验证的 JSON Web Token (JWT)。
- $secreteKey (string): 用于验证的秘密密钥。
- 返回
- 如果签名有效,则返回 true,否则返回 false。
-
generateSignature(string $data, string $key, array $extra = []): string
- 使用提供的密钥为给定数据生成数字签名(JWT)。
- 参数
- $data (string): 要签名的数据。
- $key (string): 用于签名的密钥。
- $extra (array): 要包含在签名负载中的附加数据。 (可选)
- 返回
- 生成的数字签名(JWT)字符串。
-
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 算法生成和验证。
- 正确的密钥管理和敏感信息(如加密密钥和秘密密钥)的安全存储对于保持加密数据的安全性至关重要。
- 应执行输入验证和清理,以防止安全漏洞。
- 建议遵循安全的编码实践并执行安全评估,以确保应用程序的整体安全性。
有关更多信息,请参阅类文档和代码注释。