codecollab/encryption

CodeCollab项目的加密包

2.0.0 2016-07-12 22:18 UTC

This package is auto-updated.

Last update: 2024-09-06 08:06:35 UTC


README

CodeCollab项目的加密包

Build Status MIT License Latest Stable Version Total Downloads Latest Unstable Version

要求

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\KeyCodeCollab\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() 方法解密

贡献

如何贡献

许可

MIT

安全问题

如果您发现安全问题,请直接通过电子邮件联系,而不是使用 codecollab-security@pieterhordijk.com 上的问题跟踪器。