lithemod/crypt

PHP应用的轻量级加密工具,提供安全的数据加密和解密功能。

v1.0.0 2024-10-02 10:43 UTC

This package is auto-updated.

Last update: 2024-10-02 11:01:19 UTC


README

Lithe Crypt 是一个简单的PHP加密和解密工具,专为与Lithe框架协同工作而设计。它使用AES-256-CBC算法进行安全数据处理。

安装

要安装 Lithe Crypt 包,您可以使用Composer。如果您还没有安装Composer,请确保已经安装。然后在您的项目目录中运行以下命令

composer require lithemod/crypt

要求

  • PHP 8 或更高版本
  • PHP中已启用OpenSSL扩展

使用

加载环境变量

在使用 Crypt 类之前,您需要加载环境变量。使用以下代码行来加载您的 .env 文件

use Lithe\Support\Env;

// Load environment variables
Env::load(__DIR__); // Adjust the path as necessary

设置 APP_KEY

确保您已经设置了 APP_KEY 环境变量。此密钥应是一个32字节的长度的base64编码字符串。您可以在 .env 文件中或直接在服务器环境中设置它。

生成有效 APP_KEY 的示例

# Generate a random 32-byte key and encode it in base64
echo -n $(openssl rand -base64 32) > .env

加密数据

要加密数据,请使用 Crypt 类的 encrypt 方法

use Lithe\Support\Security\Crypt;

$data = "some sensitive data";
$encrypted = Crypt::encrypt($data);
echo "Encrypted Data: " . $encrypted;

解密数据

要解密数据,请使用 decrypt 方法

use Lithe\Support\Security\Crypt;

$decrypted = Crypt::decrypt($encrypted);
echo "Decrypted Data: " . $decrypted;

处理异常

如果 APP_KEY 未设置或无效,Crypt 类将抛出 CryptException。请确保在您的代码中处理此异常

use Lithe\Exceptions\Encryption\CryptException;

try {
    $encrypted = Crypt::encrypt($data);
} catch (CryptException $e) {
    echo "Encryption Error: " . $e->getMessage();
}

单元测试

为了确保 Crypt 类的功能,提供了单元测试。您可以使用PHPUnit运行测试

./vendor/bin/phpunit

测试用例

  • testEncryptDecrypt:测试加密和解密过程。
  • testEncryptWithNullData:测试使用null数据的加密。

贡献

如果您想为 Lithe Crypt 项目做出贡献,请遵循以下指南

  1. 从存储库分叉。
  2. 为您的功能或错误修复创建一个新的分支。
  3. 为您的更改编写测试。
  4. 提交包含您的更改描述的pull请求。

许可证

本项目受MIT许可证的许可。