MD5和CRYPT的密码处理没有按预期工作

时间:2016-04-03 22:29:01

标签: php passwords md5 bcrypt crypt

我想做的是自我解释: 我得到一个"用户名"和密码"由用户设置,并尝试加密它。

这是我迄今为止所做的尝试:

//Firstly i recieve user and pswd
$usua=SQLite3::escapeString($_POST['usuario']);
$psw=SQLite3::escapeString($_POST['psw']);

//Then i proceed to encrypt
$key = md5('firstWord');
$salt = md5('secondWord');

function hashword($string,$salt){
    $string= crypt($string, '$1$'.$salt.'$');    
}

$psw = hashword($psw, $salt);

这段代码总是会返回相同的结果:" $ 1 $ 7b77d82"。

出了什么问题?

你会怎么做?

我应该使用Bcrypt吗?

显然,此过程应为每个使用的密码返回不同的值,但它不会。

1 个答案:

答案 0 :(得分:0)

对于用户名和密码的基本加密,您可以这样做:

$usua=SQLite3::escapeString($_POST['usuario']);
$psw=SQLite3::escapeString($_POST['psw']);

$salt = "aString";

$encryptedUsr = crypt($usua, $salt);
$encryptedPsw = crypt($psw, $salt);

crypt(string $string, [string $salt])函数有两个参数:要加密的字符串和一个名为$ salt的可选字符串,用于基于散列。