moviet / php-encryption
为 PHP 开发的速度金属加密库
Requires
- php: >=7.0
- ext-mbstring: *
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-26 08:41:33 UTC
README
Crypsic 旨在默认情况下既快速又安全
非常适合 PHP 开发者,同时也为独立使用而构建,
我们的源代码非常简单,包括 Crypsic 和 Pwsuit 以支持原生操作
要求
- 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文件。