php BCRYPT散列中使用的字符池是什么

xzlaal3s  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(93)

我在BCRYPT特定资源上寻找答案,但在PHP的crypt文档中找到了答案。
我有一个问题,我需要做一些REGEX来清理一个BCRYPT哈希(由PHP password_hash函数使用PASSWORD_BCRYPT生成)。我希望能够知道理论上可以出现在BCRYPT哈希中的字符,以便REGEX可以从字符串中删除所有 * 其他 * 字符。
我读过BCrypt的all aboutvarious位,它的历史和它的发展,但我还没有遇到任何地方,国家佳能什么BCRYPT哈希可以包含。
目前的理解是:
第一个月
BCRYPT是否包含 * 任何 * ascii字符?(编辑:不)我看到它包含了很多,但是通过我能找到的许多BCRYPT散列不是一个很好的确定方法。例如,BCRYPT散列 * 不 * 似乎包含=¬或其他一些字符,-为了更好的描述- 具有小的UTF-8定义。
如果这改变了BCRYPT输出散列的方式,则使用PHP接口。

vulvrdjw

vulvrdjw1#

我在PHP Crypt Function页面上找到了答案:
CRYPT_BLOWFISH -用盐对河豚鱼进行散列,如下所示:“$2a$"、“$2x$”或“$2y$"、两位数开销参数“$"和字母表“./0-9A-Za-z”中的22个字符。在salt中使用此范围之外的字符将导致crypt()返回零长度字符串
所以这个PHP/BCRYPT Hash将使用以下字符:
$./0-9A-Za-z范围。

相关问题