PHP加密函数crypt常量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asty9000/article/details/82120884

在不同的操作系统上,crypt函数可能具有不同的行为,某些操作系统支持多种算法类型。在安装PHP时会检查当前系统什么算法可用以及使用什么算法,确切的算法依赖于调用函数时salt参数的格式和长度。安装PHP时可以设置一些相关的常量。

常量 说明
CRYPT_SALT_LENGTH 默认的加密长度。使用标准的DES加密,长度为 2。
CRYPT_STD_DES PHP5.3起,标准的基于DES加密有2个字符的salt,来自字母表"./0-9A-Za-z"。在salt中使用无效的字符将导致函数调用失败。
CRYPT_EXT_DES PHP5.3起,扩展的基于DES加密有9个字符的salt,由1个下划线,后边跟4个字节的迭代次数和4个字节的salt组成。这些被编码为可打印字符,每个字符6位,最低有效字符优先。值0到63被编码为"./0-9A-Za-z"。
CRYPT_MD5 PHP5.3起,MD5加密有12个字符的salt,以$1$开始。
CRYPT_BLOWFISH PHP5.3起,Blowfish加密有一个以$2a$开始的salt,一个两位数的cost参数"$",以及来自字母表"./0-9A-Za-z" 中的22个字符。使用字母表以外的字符将导致函数返回一个长度为0的字符串。"$"参数是以2为底的基于Blowfish散列算法的迭代次数的对数,必须在04-31范围内。在该范围以外的值将导致函数调用失败。使用此算法将导致要进行加密的字符串被截取为长度最大为72的字符串。PHP5.3.7起,新增$2x$或$2y$开始的salt,用来处理潜在的高位攻击。
CRYPT_SHA256 PHP5.3.2起,SHA-256 加密有16个字符的salt,以$5$开始。如果salt字符串以"rounds=<N>$" 开始,N的数字值用于表示散列循环被执行的次数,与Blowfish中的cost参数类似。默认的循环次数是5000,最小值是1000,最大值是999999999。任何超出这个范围的N的值将会转换成最接近的边界值。
CRYPT_SHA512 PHP5.3.2起,SHA-512 加密有16个字符的salt,以$6$开始。 如果salt字符串以"rounds=<N>$" 开始,N的数字值用于表示散列循环被执行的次数,与Blowfish中的cost参数类似。默认的循环次数是5000,最小值是1000,最大值是999999999。任何超出这个范围的N的值将会转换成最接近的边界值。

猜你喜欢

转载自blog.csdn.net/asty9000/article/details/82120884
今日推荐