chippyash/crypt

此包已被弃用且不再维护。未建议替代包。

简单加密

1.1.1 2016-03-22 20:47 UTC

This package is auto-updated.

Last update: 2022-02-01 12:52:29 UTC


README

质量保证

PHP 5.3 PHP 5.4 PHP 5.5 PHP 5.6 PHP 7 Build Status Test Coverage Code Climate

上述徽章代表当前的开发分支。一般来说,除非测试、覆盖率和可用性可接受,否则我不会推送到GitHub。这在短时间内可能不成立;比如假期、需要为其他下游项目编写代码等。如果您需要稳定的代码,请使用标记版本。阅读‘进一步文档’和‘安装’。

Travis测试覆盖了PHP的多个版本。然而,它们不允许使用系统命令,因此Crypt.php的getMac()方法在Travis服务器上无法工作。您可以亲自检查一下。

是什么?

提供简单的加密能力

为什么?

加密通常不是一件简单的事情。这个库试图减轻痛苦。目前只提供一个经过验证的加密方法。

由于大多数Web加密都需要您能够将值存储在cookie、数据库表等中,因此默认情况下加密值使用Base 64编码。如果需要,可以关闭它。

如何

此库支持的加密方法都需要一个加密密钥。您可以通过运行uuidgen(至少在基于*nix的系统上)来生成这个密钥

您需要向Crypt类提供一个加密方法。目前提供了一个给您,即Rijndael256,但您可以通过实现MethodInterface来实现其他方法。

提供的Rijndael256方法能够加密任何PHP可序列化对象。

use Chippyash\Crypt\Crypt;
use Chippyash\Crypt\Crypt\Method\Rijndael256;
use chippyash\Type\String\StringType;
use chippyash\Type\BoolType;

$crypt = new Crypt(new StringType('my seed value'), new Rijndael256());
 
$encrypted = $crypt->encrypt($someValue);
$decrypted = $crypt->decrypt($encrypted);

默认情况下,加密值使用Base64编码。您可以通过以下方式获取原始值

$encrypted = $crypt->encrypt($someValue, new BoolType(false));

如果您没有使用Base64编码进行加密,则在解密时也需要关闭它

$decrypted = $crypt->decrypt($encrypted, new BoolType(false));

默认情况下,在*nix系统上,构造时提供的种子与运行代码的机器的mac地址混合,如果可以找到。这确保只有该机器可以加密和解密给定的值。如果您不想这样,比如说您正在运行在负载均衡的机器上,并将存储在中央数据库中,您可以将其关闭

$crypt = new Crypt(new StringType('my seed value'), new Rijndael256());
$crypt->setUseMacAddress(new BoolType(false));

仅限开发

此库不再维护,仅作为加密示例和存储之前他人工作的容器

如果您想继续这个项目并进一步发展,请与我联系。

目前仅在master分支上

作为如何将其他库包装进来的示例,我提供了Blowfish方法,这需要Zend Crypt库。

use Chippyash\Crypt\Crypt\Method\Blowfish;

$crypt = new Crypt(new StringType('my seed value'), new Blowfish());

如果您想进行非常严肃的加密,Zend Crypt库是一个好的起点。如果您只需要简单而有效的,请使用此库。您需要使用现在默认的composer install来引入dev依赖项以使用Zend库。如果您喜欢它,请将"zendframework/zend-crypt": "~2.5.0"添加到您的项目composer 'requires'语句中;

进一步文档

测试合约位于docs目录下。对于使用Symfony的用户,您还可以在docs目录下找到示例DIC定义。

查看ZF4软件包以获取更多软件包。

UML

class diagram

更改库

  1. 进行fork操作
  2. 编写测试
  3. 修改
  4. 发起pull request

发现了无法解决的bug吗?

  1. 进行fork操作
  2. 编写测试
  3. 发起pull request

注意。在发起pull request之前,请确保您已经rebase到HEAD。

或者 - 提出问题票据。

在哪里?

库托管在Github上。它可以在Packagist.org上找到。

安装

安装Composer

生产环境

    "chippyash/crypt": "~1.0.0"

或者使用最新版本,可能是不稳定的版本

    "chippyash/crypt": "dev-master"

要使用我的库下的Zend加密库,请将"zendframework/zend-crypt": "~2.5.0"行添加到您的composer require部分。

开发环境

克隆此仓库,然后在本地仓库根目录下运行Composer以拉取依赖项

    git clone git@github.com:chippyash/Crypt.git Crypt
    cd Crypt
    composer install

运行测试

    cd Crypt
    vendor/bin/phpunit -c test/phpunit.xml test/

许可证

此软件库根据GNU GPL V3或更高版本许可证发布

此软件库的版权所有者为(c) 2015,Ashley Kitson,英国

此软件库包含源自其他作品的代码项

就我所知,库中包含的代码项没有违反覆盖许可证,反之亦然。所以只要您坚持GPL V3+,那么您就是安全的。如果不确定,请寻求适当的建议。

如果衍生代码项的原始版权所有者反对这种包含,请联系作者。

此软件库提供商业许可证,请联系作者。通常,对有价值的慈善事业是免费的,但它可以绕过GPL许可证的限制,该许可证不允许在商业作品中不受限制地包含此代码。

感谢

这不是我自己做的。我非常感谢那些在我之前走过这条路的人。

Rijndael256加密方法基于由Andrew Johnson创建的代码。我找不到Andrew的当前位置或链接,所以如果你认识他(他创建了Cryptastic),请告诉我。

历史

V1.0.0 初次发布

V1.1.0 更新依赖项

V1.1.1 添加软件包链接

已弃用。