moviet/php-encryption

为 PHP 开发的速度金属加密库

v1.1.0 2018-12-18 08:49 UTC

This package is auto-updated.

Last update: 2024-09-26 08:41:33 UTC


README

Build Status License Usage Scrutinizer Code Quality Code Intelligence Status

Crypsic 旨在默认情况下既快速又安全

非常适合 PHP 开发者,同时也为独立使用而构建,
我们的源代码非常简单,包括 CrypsicPwsuit 以支持原生操作

要求

  • PHP v5.6(未经测试)或 PHP v7.0+(已测试)
  • 必须启用 Openssl 扩展
  • Composer 自动加载 PSR4
  • 使用 Composer 安装

让我们开始吧

安装

composer require "moviet/php-encryption"

最佳实践

  • 绝对不要加密 密码
  • 使用我们的即时 Pwsuit 保护密码,它提供 现代散列
  • Pwsuit 专门用于不可覆盖的操作,所以不要忘记密码
  • 不要为许多秘密信息使用相同的密钥,你可以做得很好
  • 您可能需要关注正确管理 密钥,它必须被安全地处理
  • 加密安全性 不同,所以不要构建一个无懈可击的系统
  • 您必须遵循适合您系统的标准安全设计

特性

  • 对称加密
  • 可定制的加密模式
  • 即时加密和解密
  • 自动生成安全的随机密钥
  • 适合密码算法
  • 使用密码保护密钥

对称加密

这意味着当前加密库仅适用于构建对称加密

可定制的加密模式

  • 您可以使用我们自己的模式函数来修改加密模式,例如

    Crypsic::mode('CBC-128') // AES-128-CBC

    这是 可选 使用,如果没有指定,将默认设置为 AES-256-CBC

    注意 :

    如果您想设置模式,请 单独使用,如果您不了解我们强烈建议您 忽略它,并使用默认模式以方便使用。

即时加密和解密

  • 您可以加密秘密 ID、文本或其他任何秘密信息,例如

    Crypsic::listen('My card number 9999-6666-6666-9999')
  • 然后简单地将您的秘密信息解密,例如

    $mySecretData = 'Dada/nanana367OYeyeyyHola666HoopYeYEYsipp+imo27blablabla'
    
     Crypsic::look($mySecretData)

自动生成安全的随机密钥

  • 没有密钥,您无法解密您的秘密信息,因此您必须首先创建一个密钥

    Crypsic::saveKey('This is new key please make em zig-zag, bilbo')

    注意:请不要忘记为您的密钥生成一个长且复杂的字符

    它将使用 密码学安全的随机 函数自动计算您的密钥

    对于 PHP v7.0+,它将使用 Openssl 的伪随机数生成器,对于 PHP v5.6,它将使用非常快乐的

  • 在您保存了加密数据的密钥之后,您可以像这样进行确认

    Crypsic::key('edfes73ccd0191jbabbdbab0101bdbeb10290abbaba1010edsf820')

适合密码算法

  • 您可以动态设置密码,如下所示

    Pwsuit::pwhash('Default','hello this is my password')
  • 或自定义

    Pwsuit::cost(26)->pwhash('Default','Yes dont blow my head')

    上面的代码等效于

    password_hash('My password', PASSWORD_DEFAULT, ['cost'=>26])

  • 如果您使用新的 PHP v7.2+,您可以尝试 现代散列,例如

    Pwsuit::pwhash('Argon2i','my Argon password is dadada')
  • 或任何自定义的

    Pwsuit::memory(4024)
    ->time(4)
    ->thread(4)
    ->pwhash('Argon2id','Hey bob this is my password')

    它将使您感到非常高兴,因为 PHP “即开即用”

使用密码保护密钥

  • 我们通过以下方式为您的密码保护的秘密添加了新的创造力

    // First create Keystore and save
    Crypsic::saveKey('let me burn the typos')
    
    // Then create password and save
    Pwsuit::cost(16)->pwhash('Default','MyPassword')

    注意 :

    “cost” 长度是可选的,如果更高,可能会有 ,但那是更好的

  • 然后,使用带有密码的密钥简单地解密和验证您的秘密

    $postPassword = $_POST['password']
    
    Crypsic::authKey($postPassword)->hash('My Data Hashed Password')->key('My key')
    
    Crypsic::look('My Encrypt Data')

    注意 :

    散列和加密数据的结果不同,请正确使用

  • 您也可以将此库作为独立库用于生成密码和验证

    Pwsuit::pwTrust($myPassword, $dataPassword) // Return Boolen
  • 使用类似方式刷新旧密码哈希

    Pwsuit::pwRehash('Default', $myPassword, $dataPassword)
  • 确保您装饰的当前哈希数据安全

    $info = Pwsuit::pwInfo($my_data_hashed) \\ see dump output with yaayy

欢迎使用

无密码加密和解密

require '__DIR__' . '/vendor/autoload.php';

use Moviet\Heavy\Crypsic;
use Moviet\Heavy\Hash\Pwsuit;

/*  
* Create a long and burn your typos, whatever
*/
$mykey = Crypsic::saveKey('Something a heavy key');

// output : c185128d2ae131b3ecf25779d2ef6120a6d9aa53ea5f422e0e2f6e97385954e9

Crypsic::key($mykey); 

$encrypt = Crypsic::listen('this is new metal song : 9999-8888-6666-1717'); 

// output : J7A2jpefNGp8HBFH0i1Xon5l59EnGFs8zFWdcMlZ1BQ4cYhNv+awNMOLZMcehkc2k6coPlN1oprVCTZPC60t6p5JvLcZHxAPVC5v08XHIYss+yTuLuYZ5CH6RfDpaZzZ

$decrypt = Crypsic::look($encrypt); 

// output : this is new metal song : 9999-8888-6666-1717

带密码加密和解密

您可能希望从破坏中安排密钥,请遵循以下步骤🤘

require '__DIR__' . '/vendor/autoload.php';

use Moviet\Heavy\Crypsic;
use Moviet\Heavy\Hash\Pwsuit;

$thor = Crypsic::saveKey('Do you know locky');

$tonyStark = Pwsuit::pwhash('Default','I know spiderman with Bob');

// Save the Output : $2y$14$yUwjHQmnOeZyHWCcA5mlE.t3nVySA5NomMGmptkbNG170T3IkGQH.

$jarvish = $_POST['password'];

$captainAfrica = Crypsic::authKey($jarvish)->hash($tonyStark)->key($thor);

$thanos = Crypsic::look($captainAfrica); // and thanos doesn't have any idea => who is bob

加密模式

哈希算法

结论

根据上述描述,您可能对如何轻松使用此库有一个大致的了解

这是多安全?

  • 您不必担心这一点,即使在生产环境中,它也能很好地工作
  • 如果您用于商业项目,请遵循最佳实践

许可证

Moviet/php-encryption是在MIT公共许可证下发布的。有关详细信息,请参阅附带的LICENSE文件。