小编seb*_*ria的帖子

使用crypt生成密码(32位与64位)

我正在使用此函数生成密码:

function generarPassword($password, $cost=11){
    $salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
    $salt='$'.implode('$',array("2y",str_pad($cost,2,"0",STR_PAD_LEFT),$salt));
    return crypt($password,$salt);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我在64位服务器上使用它时,结果如下:

$2y$11$1ws6drmcqHCWG8wj5bm5s.R8Opc0.JEjXy0.P9UsHjqoxjZQ5GYLW
Run Code Online (Sandbox Code Playgroud)

当我在32位服务器上使用它时,结果如下:

$2uUq69/OVG3M
Run Code Online (Sandbox Code Playgroud)

所以,我有两个问题:

  1. 为什么会这样?的$salt是在两个相同的长度
  2. 32位密码有任何安全问题吗?

谢谢!

php security crypt salt

0
推荐指数
1
解决办法
253
查看次数

标签 统计

crypt ×1

php ×1

salt ×1

security ×1