fyre/encryption

v3.0.10 2024-06-29 06:39 UTC

README

FyreEncryption 是一个免费的、开源的 PHP 加密库。

目录

安装

使用 Composer

composer require fyre/encryption

在 PHP 中

use Fyre\Encryption\Encryption;

方法

清除

清除所有实例和配置。

Encryption::clear();

获取配置

获取一个 Encrypter 配置。

  • $key 是表示 Encrypter 密钥的字符串。
$config = Encryption::getConfig($key);

或者,如果省略了 $key 参数,将返回包含所有配置的数组。

$config = Encryption::getConfig();

获取密钥

获取一个 Encrypter 实例的密钥。

$key = Encryption::getKey($encrypter);

检查配置

检查是否存在一个 Encrypter 配置。

  • $key 是表示 Encrypter 密钥的字符串,默认为 Encryption::DEFAULT
$hasConfig = Encryption::hasConfig($key);

检查是否加载

检查一个 Encrypter 实例是否已加载。

  • $key 是表示 Encrypter 密钥的字符串,默认为 Encryption::DEFAULT
$isLoaded = Encryption::isLoaded($key);

加载

加载一个 Encrypter

  • $options 是一个包含配置选项的数组。
$encrypter = Encryption::load($options);

设置配置

设置 Encrypter 配置。

  • $key 是表示 Encrypter 密钥的字符串。
  • $options 是一个包含配置选项的数组。
Encryption::setConfig($key, $options);

或者,可以提供一个包含配置选项键/值的单个数组。

Encryption::setConfig($config);

卸载

卸载一个 Encrypter

  • $key 是表示 Encrypter 密钥的字符串,默认为 Encryption::DEFAULT
$unloaded = Encryption::unload($key);

使用

加载一个共享的 Encrypter 实例。

  • $key 是表示 Encrypter 密钥的字符串,默认为 Encryption::DEFAULT
$encrypter = Encryption::use($key);

加密器

您可以通过指定上面变量 $optionsclassName 选项来加载特定的加密器。

可以通过扩展 \Fyre\Encryption\Encrypter 来创建自定义加密器,确保实现所有以下方法。

解密

解密数据。

  • $data 是加密数据。
  • $key 是表示加密密钥的字符串。
$decrypted = $encrypter->decrypt($data, $key);

加密

加密数据。

  • $data 是要加密的数据。
  • $key 是表示加密密钥的字符串。
$encrypted = $encrypter->encrypt($data, $key);

生成密钥

生成一个加密密钥。

$key = $encrypter->generateKey();

OpenSSL

可以使用默认配置通过 "openssl" 密钥加载 OpenSSL 加密器。

$encrypter = Encryption::use('openssl');

您也可以使用自定义配置加载加密器。

  • $key 是表示加密器密钥的字符串。
  • $options 是一个包含配置选项的数组。
    • className 必须设置为 \Fyre\Encryption\Handlers\OpenSSLEncrypter::class
    • cipher 是表示加密方法的字符串,默认为 "AES-256-CTR"。
Encryption::setConfig($key, $options);

$encrypter = Encryption::use($key);

Sodium

Sodium 加密器是默认处理器。

$encrypter = Encryption::use();

您也可以使用自定义配置加载加密器。

  • $key 是表示加密器密钥的字符串。
  • $options 是一个包含配置选项的数组。
    • className 必须设置为 \Fyre\Encryption\Handlers\SodiumEncrypter::class
    • blockSize 是表示块大小的数字,默认为 16
Encryption::setConfig($key, $options);

$encrypter = Encryption::use($key);