我正在构建用于开发的类,并且正在开发加密类。我一直在阅读php的crypt函数和不同的加密类型,但有些领域已经模糊地解释过了。
我的理解是这些加密选项CRYPT_STD_DES
,CRYPT_EXT_DES
,CRYPT_MD5
,CRYPT_BLOWFISH
,CRYPT_SHA256
和CRYPT_SHA512
。要查看它们是否已启用,您只需检查
if(CRYPT_FOO==1)
{
//is enabled
}
问题的
除了以外的其他加密的盐要求/格式是什么? 关于SO的blowfish要求。
只是为了澄清我假设你使用带有crypt()
的河豚盐自动进行河豚加密?
答案 0 :(得分:3)
official documentation of the crypt
function有很多关于各种模式的信息,以及应该作为salt
参数传递的内容:
CRYPT_STD_DES
:字母./0-9A-Za-z
中的两个字符盐,即12位盐。CRYPT_EXT_DES
:一个_
字符,然后一个4字符的迭代计数,然后一个4字符的盐(每个使用相同的字母)。CRYPT_MD5
:标记$1$
,然后是9个盐字符(我猜想使用与上面相同的字母)。CRYPT_BLOWFISH
:标记$2a$
,然后是一个两位数的 cost 参数,范围为04到31(意味着2 4 到2 < sup> 31 迭代),然后$
和22位盐(再次使用与上面相同的字母表)。CRYPT_SHA256
:标记$5$
,可选的圆形参数指示rounds=
数字 $
(十进制数介于1000和999999999之间) )和一个16个字符的盐(使用与上面相同的字母)。CRYPT_SHA512
:标记$6$
,可选的圆形参数指示rounds=
数字 $
(十进制数介于1000和999999999之间) )和一个16个字符的盐(使用与上面相同的字母)。salt参数的开头唯一标识在这里使用哪种密码哈希算法 - 所以是的,如果你使用bcrypt格式的盐(以$ 2a $开头),它将自动使用bcrypt。 / p>