PHP crypt()函数为不同版本提供不同的结果

PHP crypt()函数为不同版本提供不同的结果,php,Php,我正在服务器上将PHP从5.3.5升级到5.6.3 我正在使用以下代码加密密码 public function encrypt($id, $value) { $salt = substr( '$1$' . md5('+~jkh23hdjfd'.$id.'xyz12345~++-'), 0, 12 ); // !!!Do not change the salt, otherwise all passwords will become invalid!!!

我正在服务器上将PHP从5.3.5升级到5.6.3

我正在使用以下代码加密密码

public function encrypt($id, $value)
    {
        $salt = substr( '$1$' . md5('+~jkh23hdjfd'.$id.'xyz12345~++-'), 0, 12 );    // !!!Do not change the salt, otherwise all passwords will become invalid!!!
        return crypt($value, $salt);
    }
此函数为不同的php版本提供不同的结果。 在PHP5.3.5中

encrypt( 6534, 'test123' );
o/p: $1$2fb6540d9Ao7XI4cM1akiH4vQlAntu0
在PHP5.6.3中

encrypt( 6534, 'test123' );
o/p: $1$2fb6540d$Ao7XI4cM1akiH4vQlAntu0
没有合适的解决方案,我无法升级PHP

我该怎么办


Thanx提前。

请不要使用自己的密码加密方案使用
password\u hash
您是否尝试过PHP 5.5(仍然支持)?和孩子们,这就是为什么我们不使用自己的函数加密密码。5.3.7确实有一个bug,但除此之外,自PHP 4.3生成@cmorrissey PHP5.3以来,几乎每个版本都没有密码散列函数。请不要使用
password\u散列
对密码使用您自己的加密方案。您是否尝试过PHP 5.5(仍然支持)?和孩子们,这就是为什么我们不使用自己的函数来加密密码。5.3.7确实有一个bug,但从PHP4.3产生@cmorrissey PHP5.3以来,几乎每个版本都没有密码散列函数。请不要使用自己的密码加密方案使用
password\u hash
PHP5.5尝试过吗(仍然支持)?孩子们,这就是为什么我们不使用自己的函数来加密密码。5.3.7确实有一个bug,但除此之外,自PHP4.3产生@cmorrissey PHP5.3以来,几乎每个版本都没有密码散列函数。