iamjohndev/phpencryption

PHPSecryption是一个PHP类,使用OpenSSL库提供加密和解密功能。它使用高级加密标准(AES)算法在Cipher-Block Chaining(CBC)模式下进行安全数据加密。

dev-main 2023-04-22 05:43 UTC

This package is auto-updated.

Last update: 2024-09-22 08:32:38 UTC


README

PHPSecryption是一个PHP类,使用OpenSSL库提供加密和解密功能。它使用高级加密标准(AES)算法在Cipher-Block Chaining(CBC)模式下进行安全数据加密。

特性

  • 使用AES-256-CBC加密算法进行强加密。
  • 支持自定义加密和解密密钥。
  • 处理密钥不匹配和无效加密数据的错误。
  • 简单易用的API。

安装

您可以通过Composer使用以下命令安装PHPSecryption:

composer require iamjohndev/phpencryption:dev-main

或者,您也可以手动下载并将PHPSecryption.php文件包含到您的PHP项目中。

使用方法

以下是如何在您的PHP代码中使用PHPSecryption的示例

require 'vendor/autoload.php'; // Add this line if you're using core PHP

use iamjohndev\PHPSecryption;

// Instantiate PHPSecryption with encryption key
$encryptionKey = 'mysecretencryptionkey';
$phpEncryption = new PHPSecryption($encryptionKey);

// Encrypt data
$data = 'Hello, world!';
$encryptedData = $phpEncryption->encrypt($data);

// Decrypt data
$decryptedData = $phpEncryption->decrypt($encryptedData);

// Display results
echo "Original data: $data\n";
echo "Encrypted data: $encryptedData\n";
echo "Decrypted data: $decryptedData\n";

如果您想使用与加密时不同的密钥进行解密,您也可以使用setDecryptionKey()方法设置自定义解密密钥。

// Set custom decryption key
$decryptionKey = 'mysecretdecryptionkey';
$phpEncryption->setDecryptionKey($decryptionKey);

错误处理

PHPSecryption提供对密钥不匹配和无效加密数据的错误处理。如果解密密钥与使用的加密密钥不匹配,或者加密数据无效,将抛出一个包含适当错误消息的异常。

try {
    // Decrypt data with incorrect key
    $invalidDecryptionKey = 'incorrectdecryptionkey';
    $decryptedData = $phpEncryption->decrypt($encryptedData, $invalidDecryptionKey);
} catch (Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";
}

安全考虑

  • 妥善管理加密密钥,并确保其保密性和安全性,防止未经授权的访问。
  • 使用适当的访问控制安全地存储加密数据和加密密钥。
  • 验证和清理输入数据,以防止潜在的安全漏洞。
  • 定期审计和审查实现,以识别安全风险。
  • 确保遵守适用的数据保护法律和行业法规,尤其是在处理敏感数据时。

贡献

欢迎对PHPSecryption做出贡献!请将问题和拉取请求提交到GitHub存储库:https://github.com/iamjohndev/phpencryption

许可

PHPSecryption在MIT许可证下发布,允许个人和商业使用。请参阅LICENSE文件以获取更多详细信息。

鸣谢

PHPSecryption由iamjohndev创建,并受到各种PHP加密库和加密及密钥管理最佳实践的启发。