karavasilev / cryptomanana
CryptoManana 是一个加密框架,用于提升您的项目安全性。
v1.1.2
2024-02-12 21:59 UTC
Requires
- php: ^5.5 || ^7.0 || 8.0.* || 8.1.* || 8.2.* || 8.3.*
- ext-hash: *
- ext-openssl: *
- ext-spl: *
Requires (Dev)
- ext-mbstring: *
- ext-reflection: *
- phpunit/phpunit: ^10 || ^9 || ^8 || ^7 || ^6 || ^5.7 || ^4.8
- squizlabs/php_codesniffer: ^3.3
Suggests
- ext-apcu: Recommended for Composer autoloading optimization level 2/B and caching.
- ext-mbstring: Use only for multi-byte string encodings support and implementations.
- ext-xdebug: Useful for Web/CLI debugging and profiling, plus needed for Code Coverage.
- ext-zend-opcache: Recommended for high speed execution and memory optimizations.
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-rc
- v1.0.0-beta
- v1.0.0-alpha
- v0.9.0
- v0.8.0
- v0.7.0
- v0.6.0
- v0.5.0
- v0.4.0
- v0.3.0
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.20
- v0.0.19
- v0.0.18
- v0.0.17
- v0.0.16
- v0.0.15
- v0.0.14
- v0.0.13
- v0.0.12
- v0.0.11
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-staging
- dev-master / 1.x-dev
This package is auto-updated.
Last update: 2024-09-12 23:58:29 UTC
README
项目描述
CryptoMañana (CryptoManana) 是一个PHP加密框架,提供面向对象解决方案以增强项目安全性。该项目遵循S.O.L.I.D/KISS/DRY原则,并实现了一些流行的软件设计模式。该软件框架提供了一个功能齐全的加密模型,包含大量的加密原语、协议和服务。它非常适合安全的哈希、加密、密钥交换、数据签名、随机数据生成等。CryptoMañana旨在使您的开发更快、更安全!
开发者: Tony Karavasilev
项目安装
# Install the package at your project via Composer composer require karavasilev/cryptomanana # Optionally, check if your system is well-configured php vendor/karavasilev/cryptomanana/check.php # Or: ./vendor/karavasilev/cryptomanana/check
项目要求
PHP版本
:5.5,5.6,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2或8.3;spl
扩展(从PHP 5.0.0开始捆绑,自PHP 5.3.0起添加到核心);hash
扩展(从PHP 5.1.2开始捆绑,自PHP 7.4.0起添加到核心);openssl
扩展(默认添加到PHP 5.0.0,需要OpenSSL库);OpenSSL Library
通常与许多操作系统和LAMP服务器默认安装;- PHP的
Composer依赖管理器
或通过src/autoload.php
手动自动加载; - 可选扩展:
libsodium
或sodium
、mbstring
、zend-opcache
和apcu
。
项目文档
通过DOI引用项目
CryptoMañana 框架 - DOI 10.5281/zenodo.2604693 (作为一个概念)
本地运行测试(可选)
git clone --depth=1 https://github.com/TonyKaravasilev/CryptoManana.git cd CryptoManana && composer install --profile vendor/bin/phpunit --testdox --no-coverage vendor/bin/phpcs
注意:不要忘记在您的php.ini配置文件中设置sys_temp_dir
或upload_tmp_dir
的位置。
通过第三方扩展启用8位Unicode转换格式支持(可选)
- 安装并启用
mbstring
PHP扩展; - 配置编码并启用CryptoManana使用它
// Autoload packages via Composer class autoloader require 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; // Configure PHP internal encoding (default is `UTF-8` for PHP >= 5.6) ini_set('default_charset', 'UTF-8'); // Configure `mbstring` to use your favourite UTF-8 encoding mb_regex_encoding('UTF-8'); mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); // Enable the `mbstring` support for CryptoManana components \CryptoManana\Core\StringBuilder::useMbString(true); // Start coding hard...
注意:框架无需扩展即可工作,并且默认情况下不启用其使用以提高性能。
PHP向后兼容性(可选)
默认情况下,CryptoManana框架为不同的旧版PHP版本提供兼容性(polyfill)。您可以通过定义一个常量来禁用兼容性检查(位于src/compatibility.php
),但这没有太多理由,但您可能希望有自己的/他人的Polyfill逻辑等。全局常量必须在自动加载之前或第一个类使用(访问)之前定义,如下所示
define('CRYPTO_MANANA_COMPATIBILITY_OFF', true); // const CRYPTO_MANANA_COMPATIBILITY_OFF = 1;
注意:在大多数情况下,您不需要这样做。脚本在每个HTTP请求(或CLI执行)中只调用一次。
性能和安全提示(可选)
- 始终将您的OpenSSL/Sodium库更新到最新版本;
- 始终更新您的操作系统和内核;
- 始终更新您的PHP和使用的扩展;
- 始终更新您的Composer依赖项;
- 按环境分离依赖项;
- 经常进行备份;
- 遵循最小权限原则;
- 永远不要输出系统技术错误;
- 永远不要暴露您的平台版本信息;
- 永远不要相信用户输入,它是邪恶的;
- 永远不要重复使用密钥、盐或nonce字符串;
- 利用Zend OPcache/JIT的力量;
- 使用Composer APCu优化;
- 增加PHP的资源;
- 增加realpath缓存。