webiny / crypt
Webiny Crypt 组件
v1.6.1
2017-09-29 08:12 UTC
Requires
- php: >=7
- webiny/config: ~1.6
- webiny/std-lib: ~1.6
Requires (Dev)
- mybuilder/phpunit-accelerator: dev-master
- phpunit/phpunit: ~6
README
Crypt
组件提供了生成随机数和字符串的方法,还包括密码散列和密码散列验证,以及字符串加密和解密的方法。它内部使用的是密码学安全的算法。
免责声明:此库未经安全专家审查。
安装组件
安装组件的最佳方式是使用 Composer。此库需要您也将仓库添加到您的 composer.json 文件中。
composer require webiny/crypt
要查看此包的其他版本,请访问Packagist 页面。
使用 Crypt
class MyClass { use Webiny\Component\Crypt\CryptTrait; function myMethod() { $this->crypt()->encrypt('to encrypt', 'secret key'); } }
生成随机整数
要生成随机整数,只需将范围传递给 Crypt
实例即可。
$randomInt = $crypt->generateRandomInt(10, 20); // e.g. 15
生成随机字符串
当您想要生成随机字符串时,有多种选择。您可以调用通用的 generateRandomString
方法,或者调用 generateUserReadableString
方法来获取一个更易读的字符串,其中不包含任何特殊字符。还有一个名为 generateHardReadableString
的方法,它使用特殊字符(除字母和数字外)来使字符串更加“复杂”。以下是一些示例
// generate a string from a defined set of characters $randomString = $crypt->generateRandomString(5, 'abc'); // e.g. cabcc // generate a string that contains only letters (lower & upper case and numbers) $randomString = $crypt->generateUserReadableString(5); // A12uL // generate a string that can contain special characters $randomString = $crypt->generateHardReadableString(5); // &"!3g
密码散列和验证
// hash password $passwordHash = $crypt->createPasswordHash('login123'); // $2y$08$GgGha6bh53ofEPnBawShwO5FA3Q8ImvPXjJzh662/OAWkjeejAJKa // (on login page) verify the hash with the correct password $passwordsMatch = $crypt->verifyPasswordHash('login123', $passwordHash); // true or false
加密和解密字符串
// encrypt it $encrypted = $crypt->encrypt('some data', 'abcdefgh12345678'); // decrypt it $decrypted = $crypt->decrypt($result, 'abcdefgh12345678'); // "some data"
Crypt 配置
您可以从三个不同的内部加密库中进行选择
- OpenSSL - 这是默认库
- Sodium - 内部使用 paragonie/halite 进行密码散列、密码验证、加密和解密的库。请注意,此库非常占用 CPU 资源。
- Mcrypt - 这是已弃用的库,将在达到 PHP v7.2 版本后删除
要切换库,只需在配置中设置不同的 Bridge
Crypt: Bridge: \Webiny\Component\Crypt\Bridge\Sodium\Crypt
然后,在您的代码中只需调用
\Webiny\Components\Crypt\Crypt::setConfig($pathToYourYaml);
自定义 Crypt
驱动
要创建自定义 Crypt
驱动,首先您需要创建一个实现了 \Webiny\Component\Crypt\Bridge\CryptInterface
的类。一旦实现了所有请求的方法,您现在需要更改组件配置中的 Bridge
路径。
资源
要运行单元测试,您需要使用以下命令
$ cd path/to/Webiny/Component/Crypt/
$ composer.phar install
$ phpunit