codecollab / encryption
CodeCollab项目的加密包
Requires
- php: ^7
- defuse/php-encryption: ^2.0
Requires (Dev)
- phpunit/phpunit: ^5.4
This package is auto-updated.
Last update: 2024-09-06 08:06:35 UTC
README
CodeCollab项目的加密包
要求
PHP7+
安装
使用composer将库包含到您的项目中
{
"require-dev": {
"codecollab/encryption": "^2"
}
}
用法
此库为您的应用程序处理加密提供了常见的接口和异常。
生成密钥
在能够加密/解密数据之前,需要生成/添加密钥。要生成新密钥,请使用
$key = (new \CodeCollab\Encryption\Defusev2\Key())->generate();
注意:密钥应始终存储在安全位置,并且永远不会公开。
注意:所有密钥都共享通用的 CodeCollab\Encryption\Key
接口。
加密
$encryptedData = (new \CodeCollab\Encryption\Defusev2\Encryptor($key))->encrypt('the data to encrypt');
注意:所有加密器都共享通用的 CodeCollab\Encryption\Encryptor
接口。
解密
$decryptedData = (new \CodeCollab\Encryption\Defusev2\Decryptor($key))->decrypt($encryptedData);
注意:所有解密器都共享通用的 CodeCollab\Encryption\Decryptor
接口。
要使用v1*版本此库加密的旧数据解密,请使用已弃用的
$decryptedData = (new \CodeCollab\Encryption\Defuse\Decryptor($key))->decrypt($encryptedData);
使用您当前密钥。对于新加密数据,请创建新的、独立的密钥。
异常
此库可能会发出两种不同的异常
\CodeCollab\Encryption\CryptoException
\CodeCollab\Encryption\FraudException
在您的应用程序中正确处理这些异常非常重要。
CryptoException
当无法生成密钥或由于系统错误无法加密/解密消息时,会抛出此异常。
FraudException
当怀疑消息已被篡改时,会抛出此异常。应像处理已被篡改的消息一样处理此异常,并采取预防措施。
升级
从v1*升级到此库的v2*时,有一些破坏性更改。
现在无法再使用过时的 CodeCollab\Encryption\Defuse\Key
和 CodeCollab\Encryption\Defuse\Encrypt
类生成新密钥或加密数据。
已用 ``CodeCollab\Encryption\Defusev2` 包取代了 CodeCollab\Encryption\Defuse
包。
使用已弃用的 CodeCollab\Encryption\Defuse\Decrypt::decrypt()
方法解密数据仍然可能,并且在未来一段时间内也将如此。
然而,强烈建议使用新的 CodeCollab\Encryption\Defusev2
包重新加密旧数据。
此流程如下
- 使用新的
CodeCollab\Encryption\Defusev2\Key::generate()
方法生成新密钥(但不要立即覆盖当前密钥!) - 使用当前密钥和
CodeCollab\Encryption\Defuse\Decrypt::decrypt()
方法解密数据 - 使用新密钥和新的
CodeCollab\Encryption\Defusev2\Encrypt::encrypt()
方法加密数据 - 新加密的数据现在可以使用新的
CodeCollab\Encryption\Defusev2\Decrypt::decrypt()
方法解密
贡献
许可
安全问题
如果您发现安全问题,请直接通过电子邮件联系,而不是使用 codecollab-security@pieterhordijk.com 上的问题跟踪器。