使用 MD5 和 CRYPT 的密码处理未按预期工作
Password handling with MD5 and CRYPT isn't working as expected
我想做的是不言自明的:
我得到一个 "username" 和一个用户设置的 "password",并尝试加密它。
这是我目前尝试过的方法:
//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, '$'.$salt.'$');
}
$psw = hashword($psw, $salt);
为什么这段代码总是 return 相同的结果:“$1$7b77d82”。
怎么了?
你会怎么做?
我应该使用 Bcrypt 吗?
显然,此过程应该 return 为每个使用的密码设置不同的值,但事实并非如此。
对于用户名和密码的基本加密,您可以这样做:
$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 的可选字符串,用于哈希。
我想做的是不言自明的: 我得到一个 "username" 和一个用户设置的 "password",并尝试加密它。
这是我目前尝试过的方法:
//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, '$'.$salt.'$');
}
$psw = hashword($psw, $salt);
为什么这段代码总是 return 相同的结果:“$1$7b77d82”。
怎么了?
你会怎么做?
我应该使用 Bcrypt 吗?
显然,此过程应该 return 为每个使用的密码设置不同的值,但事实并非如此。
对于用户名和密码的基本加密,您可以这样做:
$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 的可选字符串,用于哈希。