paragonie/random-lib
Composer 安装命令:
composer require paragonie/random-lib
包简介
A Library For Generating Secure Random Numbers
README 文档
README
A library for generating random numbers and strings of various strengths.
This library is useful in security contexts.
Note: This is a fork of Anthony Ferrara's
RandomLib, maintained by Paragon Initiative Enterprises.
Install
Via Composer
$ composer require paragonie/random-lib
Usage
Factory
A factory is used to get generators of varying strength:
$factory = new RandomLib\Factory; $generator = $factory->getGenerator(new SecurityLib\Strength(SecurityLib\Strength::MEDIUM));
A factory can be configured with additional mixers and sources but can be used out of the box to create both medium and low strength generators.
Convenience methods are provided for creating high, medium, and low strength generators. Example:
$generator = $factory->getMediumStrengthGenerator();
$factory->getLowStrengthGenerator()
Convenience method to get a low strength random number generator.
Low Strength should be used anywhere that random strings are needed in a non-cryptographical setting. They are not strong enough to be used as keys or salts. They are however useful for one-time use tokens.
$factory->getMediumStrengthGenerator()
Convenience method to get a medium strength random number generator.
Medium Strength should be used for most needs of a cryptographic nature. They are strong enough to be used as keys and salts. However, they do take some time and resources to generate, so they should not be over-used
$factory->getHighStrengthGenerator()
Convenience method to get a high strength random number generator.
High Strength keys should ONLY be used for generating extremely strong cryptographic keys. Generating them is very resource intensive and may take several minutes or more depending on the requested size.
Generator
A generator is used to generate random numbers and strings.
Example:
// Generate a random string that is 32 bytes in length. $bytes = $generator->generate(32); // Generate a whole number between 5 and 15. $randomInt = $generator->generateInt(5, 15); // Generate a 32 character string that only contains the letters // 'a', 'b', 'c', 'd', 'e', and 'f'. $randomString = $generator->generateString(32, 'abcdef');
$generator->generate($size)
Generate a random byte string of the requested size.
$generator->generateInt($min = 0, $max = PHP_INT_MAX)
Generate a random integer with the given range. If range ($max - $min)
is zero, $max will be used.
$generator->generateString($length, $characters = '')
Generate a random string of specified length.
This uses the supplied character list for generating the new result string. The list of characters should be specified as a string containing each allowed character.
If no character list is specified, the following list of characters is used:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/
Examples:
// Give the character list 'abcdef': print $generator->generateString(32, 'abcdef')."\n"; // One would expect to receive output that only contained those // characters: // // adaeabecfbddcdaeedaedfbbcdccccfe // adfbfdbfddadbfcbbefebcacbefafffa // ceeadbcabecbccacdcaabbdccfadbafe // abadcffabdcacdbcbafcaecabafcdbbf // dbdbddacdeaceabfaefcbfafebcacdca
License
MIT, see LICENSE.
Community
If you have questions or want to help out, join us in the #phpc channel on irc.freenode.net.
Security Vulnerabilities
If you have found a security issue, please contact the author directly at security@paragonie.com.
paragonie/random-lib 适用场景与选型建议
paragonie/random-lib 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.58M 次下载、GitHub Stars 达 70, 最近一次更新时间为 2017 年 10 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「cryptography」 「random」 「random-numbers」 「random-strings」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 paragonie/random-lib 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 paragonie/random-lib 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 paragonie/random-lib 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Library For Generating Secure Random Numbers
DUKPT implementation in PHP
The most convenient way to securely generate anything random in PHP
Laravel wrapper around paragonie/random-lib
A library for reading KeePass 2.x databases
Laravel authentication middleware for UZI passes.
统计信息
- 总下载量: 3.58M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 74
- 点击次数: 41
- 依赖项目数: 27
- 推荐数: 2
其他信息
- 授权协议: MIT
- 更新时间: 2017-10-05