initphp/encryption

PHP OpenSSL/Sodium 加密和解密

1.0 2022-03-15 09:02 UTC

This package is auto-updated.

Last update: 2024-09-24 11:33:42 UTC


README

PHP OpenSSL/Sodium 加密和解密

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

要求

  • PHP 7.4 或更高版本
  • MB_String 扩展
  • 根据使用情况
    • OpenSSL 扩展
    • Sodium 扩展

安装

composer require initphp/encryption

配置

$options = [
    'algo'      => 'SHA256',
    'cipher'    => 'AES-256-CTR',
    'key'       => null,
    'blocksize' => 16,
];
  • algo:仅由 OpenSSL 处理器使用。用于签名数据的算法。
  • cipher:仅由 OpenSSL 处理器使用。用于加密数据的加密算法。
  • key:用于加密的秘密密钥字符串。
  • blocksize:仅由 sodium 处理器使用。用于 sodium_pad()sodium_unpad() 函数。

用法

require_once "vendor/autoload.php";
use \InitPHP\Encryption\Encrypt;

// OpenSSL Handler
/** @var $openssl \InitPHP\Encryption\HandlerInterface */
$openssl = Encrypt::use(\InitPHP\Encryption\OpenSSL::class, [
    'algo'      => 'SHA256',
    'cipher'    => 'AES-256-CTR',
    'key'       => 'TOP_Secret_Key',
]);

// Sodium Handler
/** @var $sodium \InitPHP\Encryption\HandlerInterface */
$sodium = Encrypt::use(\InitPHP\Encryption\Sodium::class, [
    'key'       => 'TOP_Secret_Key',
    'blocksize' => 16,
]);

方法

encrypt()

public function encrypt(mixed $data, array $options = []): string;

decrypt()

public function decrypt(string $data, array $options = []): mixed;

编写自己的处理器

namespace App;

use \InitPHP\Encryption\{HandlerInterface, BaseHandler};

class MyHandler extends BaseHandler implements HandlerInterface
{
    public function encrypt($data, array $options = []): string
    {
        $options = $this->options($options);
        // ... process
    }

    public function decrypt($data, array $options = [])
    {
        $options = $this->options($options);
        // ... process
    }
}
use \InitPHP\Encryption\Encrypt;

$myhandler = Encrypt::use(\App\MyHandler::class);

获取帮助

如果您有任何问题、疑虑、错误报告等,请在该存储库的问题跟踪器中提交问题。

参与贡献

所有对本项目的贡献都将根据 MIT 许可证发布。通过提交拉取请求或提交错误、问题或功能请求,您同意遵守此版权利益放弃声明。

有两种主要方式可以帮助

  • 使用问题跟踪器
  • 更改代码库

使用问题跟踪器

使用问题跟踪器提出功能请求、报告错误和提问。这也是与项目开发人员和对此解决方案感兴趣的其他人建立联系的好方法。

使用问题跟踪器找到贡献的方式。找到一个错误或功能,在问题中提到您将承担这项工作,然后遵循以下更改代码库的指南。

更改代码库

一般来说,您应该在这个存储库上创建分支,在自己的分支中进行更改,然后提交拉取请求。所有新代码都应该有相关的单元测试来验证实现的功能和缺陷的存在或不存在。此外,代码应遵循项目规定的任何样式和架构指南。如果没有这样的指南,则模仿现有代码库中的样式和模式。

鸣谢

许可证

版权 © 2022 MIT 许可证