driftwood/对称加密

PHP包装OpenSSL库,提供预配置、二进制安全、认证的对称加密。

2.0.3 2021-05-03 09:57 UTC

This package is auto-updated.

Last update: 2024-09-29 04:37:01 UTC


README

最新稳定版本 许可证 对称加密

PHP包装OpenSSL库,提供预配置的认证对称加密。

  • 易于使用
  • 仅使用众所周知的加密构建块
  • 认证(加密后再进行mac操作)
  • 二进制安全

预期用途

此类旨在作为预配置的选项,在PHP项目中需要对称加密时使用。

对称加密类旨在直接使用:定义的各种类常量不是配置选项。相反,它们旨在方便轻松审查所做的选择。如果您更改任何定义的常量或代码的任何其他部分,隐含的安全性将不再存在;它将仅成为自制的加密的另一版本。

审查状态

对称加密类已经收到一些非正式的代码审查,但远远不足以保证其安全性。话虽如此,它可能比大多数人自己能想到的更安全。

安装

您可以选择下载代码作为 .zip文件,或者使用Composer直接从packagist下载,只需将以下内容添加到您的composer.json文件中。

{
	"require": {
		"driftwood/symmetric-encryption": "^2.0.0"
    }
}

使用方法

由于对称加密已经预配置,您可以使用以下方法加密和解密数据

// Assuming a PSR-4 compatible autoloader

use Driftwood\SymmetricEncryption;
$password = 'correct horse battery staple';

$crypto = new SymmetricEncryption(20);

$encrypted = $crypto->encrypt('Never roll your own crypto.', $password);
$decrypted = $crypto->decrypt($encrypted, $password);

echo $decrypted; // Never roll your own crypto.

维护状态

此类正在积极维护,但更新不频繁。这是一个好事:更新意味着需要修复某些问题,这在密码学中通常是一个非常糟糕的事情。

使用密码而不是密钥

对称加密期望用户提供密码。然而,一般来说,密码是弱的认证者,使用强大的加密密钥会更加安全。选择要求密码是为了便于最大程度的简化(用户提供的密码使用PBKDF2扩展为密钥)。当然,对称加密没有最大密码长度,也不要求它不能是二进制。因此,强烈建议您选择一个非常长、随机生成的字节数组作为您的密码。