chippyash / crypt
简单加密
Requires
- php: >=5.3
- ext-mcrypt: *
- chippyash/strong-type: ~3.0.0
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: ~4.3
- zendframework/zend-crypt: ~2.5.0
Suggests
- zendframework/zend-crypt: Use Zend Crypt BlockCipher component in your method classes
This package is auto-updated.
Last update: 2022-02-01 12:52:29 UTC
README
质量保证
上述徽章代表当前的开发分支。一般来说,除非测试、覆盖率和可用性可接受,否则我不会推送到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
更改库
- 进行fork操作
- 编写测试
- 修改
- 发起pull request
发现了无法解决的bug吗?
- 进行fork操作
- 编写测试
- 发起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 添加软件包链接
已弃用。