BCRYPT哈希中使用的字符池是什么



我一直在寻找BCRYPT特定资源的答案,但在PHP的crypt文档中找到了答案。

我有一个问题,需要执行一些REGEX来清理BCRYPT哈希(由PHPpassword_hash函数使用PASSWORD_BCRYPT生成(。我想知道理论上可能出现在BCRYPT哈希中的字符,这样REGEX就可以从字符串中删除所有其他字符。

我已经阅读了关于BCrypt的各个部分,它的历史和发展,但我没有遇到过任何地方可以为佳能说明BCrypt哈希可以包含什么。

目前的理解是:

*0-9a-zA-Z$.

BCRYPT是否包含任何ascii字符?(编辑:没有(我看到它包含了很多,但浏览我能找到的许多BCRYPT哈希并不是一个好的方法。例如,BCRYPT哈希似乎包含=¬或其他一些字符,-为了更好的描述-具有较小的UTF-8定义。

如果这改变了BCRYPT输出散列的方式,那么这就是使用PHP接口。

我在PHP Crypt Function页面上找到了答案:

CRYPT_BLOWFISH-用盐进行BLOWFISH散列如下:$2a$"2x$";或"$2y$";,一个两位数的成本参数$&";,以及字母表中的22个字符"/0-9A-Za-z";。在salt中使用此范围之外的字符将导致crypt((返回零长度字符串

所以这个PHP/BCRYPT哈希将使用以下字符:

CCD_ 13范围。

最新更新