michaelmawhinney/cryptex
Composer 安装命令:
composer require michaelmawhinney/cryptex
包简介
A simple PHP class for 2-way authenticated encryption using XChaCha20 + Poly1305 (libsodium)
README 文档
README
Cryptex: 2-way Authenticated Encryption Class
Cryptex is a simple PHP class that performs 2-way authenticated encryption using XChaCha20 + Poly1305.
Version 5.0.0 is a modernization and hardening release. It keeps the v4 public API, the v4 hex ciphertext format, and external salt semantics intact.
Requirements
- PHP 8.3 or newer
ext-sodium
These requirements apply to v5.0.0 and later. Existing v4-style ciphertexts remain decryptable with the same API, but v5 does not introduce a new ciphertext envelope or transport encoding.
Installation
The preferred method of installation is with Packagist and Composer. The following command installs the package and adds it as a requirement to your project's composer.json:
composer require michaelmawhinney/cryptex
You can also download or clone the repo and include the src/Cryptex.php manually if you prefer.
Usage
Always store or transmit your $key and $salt values securely.
<?php require 'vendor/autoload.php'; use cryptex\Cryptex; try { // Your private data and secret key $plaintext = "You're a certified prince."; $key = "1-2-3-4-5"; // same combination on my luggage // Generate a secure random salt value $salt = Cryptex::generateSalt(); // Encrypt the plaintext using the preserved v4-style API and hex ciphertext output $ciphertext = Cryptex::encrypt($plaintext, $key, $salt); // example result: // 4c406399a8830dbf670832b298980280d71bfb8cba53246ed45c9b6e6fc753bc100da3d10d4bf0d406d8afd18b8a5a79f44e50424ed0970914490706418c5725258e // Decrypt the ciphertext with the same v4-style API $result = Cryptex::decrypt($ciphertext, $key, $salt); } catch (Exception $e) { // There was some error during salt generation, encryption, authentication, or decryption echo 'Caught exception: ' . $e->getMessage() . "\n"; } // Verify with a timing attack safe string comparison if (hash_equals($plaintext, $result)) { // Cryptex securely encrypted and decrypted the data echo "Pass"; } else { // There was some failure that did not generate any exceptions echo "Fail"; } // The above example will output: Pass
Release Notes
See CHANGELOG.md for the v5.0.0 release summary and compatibility notes.
Testing
The PHPUnit test class is in tests/CryptexTest.php.
If you installed Cryptex with Composer, you can run the following commands in the top-level folder of this project:
composer test
composer lint
The PHPUnit command used by composer test is:
./vendor/bin/phpunit --configuration phpunit.xml.dist
Generating Documentation
Cryptex uses phpDocumentor to automatically generate documentation whenever changes are made. The generated documentation is available online here. However if you want to generate the documentation locally, you can run the following command in the top-level folder of this project (requires docker):
docker run --rm -v "$(pwd):/data" "phpdoc/phpdoc:3" -d src,tests -t docs
If you want to use another method of running/installing phpdoc, refer to the phpDocumentor documentation.
michaelmawhinney/cryptex 适用场景与选型建议
michaelmawhinney/cryptex 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26 次下载、GitHub Stars 达 3, 最近一次更新时间为 2018 年 10 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「encryption」 「decryption」 「libsodium」 「Xchacha20」 「Poly1305」 「argon2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 michaelmawhinney/cryptex 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 michaelmawhinney/cryptex 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 michaelmawhinney/cryptex 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A simple PHP class to encrypt a string and decrypt an encrypted string
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
Encryption with AES-256 and HMAC-SHA256
Easy cryptbox for you guys
Allows installation of Laravel where the PHP Mcrypt extension is not available. Provides encryption using OpenSSL, or by disabling encryption entierly.
High-level cryptographic primitives and security utilities for Maatify systems including password hashing, reversible encryption, HKDF key derivation, and key rotation.
统计信息
- 总下载量: 26
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-10-04