Php 使用crypt进行不同的加密。盐的格式应该是什么
我正在为开发构建我的类,并且正在开发一个加密类。我一直在阅读php的crypt函数和不同的加密类型,但有几个方面的解释含糊不清 我的理解是有这些加密选项Php 使用crypt进行不同的加密。盐的格式应该是什么,php,encryption,hash,salt,crypt,Php,Encryption,Hash,Salt,Crypt,我正在为开发构建我的类,并且正在开发一个加密类。我一直在阅读php的crypt函数和不同的加密类型,但有几个方面的解释含糊不清 我的理解是有这些加密选项CRYPT\u STD\u DES,CRYPT\u EXT\u DES,CRYPT\u MD5,CRYPT\u河豚,CRYPT\u SHA256,以及CRYPT\u SHA512。要查看它们是否已启用,只需检查 if(CRYPT_FOO==1) { //is enabled } 问题 不同加密的salt要求/格式是什么。 要求是这样的 为
CRYPT\u STD\u DES
,CRYPT\u EXT\u DES
,CRYPT\u MD5
,CRYPT\u河豚
,CRYPT\u SHA256
,以及CRYPT\u SHA512
。要查看它们是否已启用,只需检查
if(CRYPT_FOO==1)
{
//is enabled
}
问题
不同加密的salt要求/格式是什么。
要求是这样的
为了澄清起见,我假设如果您将河豚盐与crypt()
一起使用,它会自动执行河豚加密?有很多关于各种模式的信息,以及应该作为其salt
参数传递的信息:
:字母表中的两个字符saltCRYPT_STD_DES
,即12位salt/0-9A-Za-z
:一个CRYPT\u EXT\u DES
字符,然后是一个4字符的迭代计数,然后是一个4字符的salt(每个字符使用相同的字母表)
:一个标记CRYPT\u MD5
,然后再加上9个salt字符(我想使用与上面相同的字母表)$1$
:一个标记CRYPT\u河豚
,然后是一个介于04到31之间的两位数成本参数(意味着24到231次迭代),然后是$2a$
和一个22位数的salt(同样,使用与上述相同的字母表)$
:一个标记CRYPT\u SHA256
,一个可选的轮参数指示$5$
数字轮数=
(十进制数字介于1000和99999999999之间),以及一个16字符的salt(使用与上述相同的字母表)$
:一个标记CRYPT\u SHA512
,一个可选的轮参数指示$6$
数字轮数=
(十进制数字介于1000和99999999999之间),以及一个16字符的salt(使用与上述相同的字母表)$
salt参数的开头唯一地标识了此处要使用哪种密码哈希算法-因此,是的,如果您使用bcrypt格式的salt(从$2a$开始),它将自动使用bcrypt。如果您尝试加密密码,只需使用bcrypt,它可能是最安全的@肯怀特:这些问题解释了我的一些问题。他们使用的是16位加密的blowfish。我不确定各种加密类型(如
sha256
@aledalgrande)对我的密码的要求是什么,我将使用bcrypt,它是CRYPT_-BLOWFISH
,但我的类也将支持其他加密。