我用PhP编写了一个带有后端的应用程序,并得到了一些用户。它们都具有密码,每次使用“ PASSWORD_DEFAULT”时,都会使用PhP的crypt函数对密码进行哈希处理,并添加相同的符号。
现在,因为该代码非常糟糕,所以我正在过渡到JavaScript,在这里我使用带有随机生成的盐的bcrypt节点模块来哈希密码。
我想知道,有什么方法可以保存旧用户的登录名,即使使用新的哈希值也可以使它们有效,或者它们永远消失了?
编辑代码:
旧的PhP代码:
$stmt = $this->db->prepare(
"INSERT INTO USERS (deviceID, latitude, longitude, username, password, date_reg) VALUES (?, ?, ?, ?, ?, CURDATE());");
$stmt->bind_param("sddss", $deviceID, $rounded_down_lat, $rounded_down_long, $username, crypt($password, "PASSWORD_DEFAULT"));
新的JavaScript / Node.js代码:
add_user(deviceID, username, unencrypt_password, latitude, longitude, dob, gender) {
latitude = latitude - latitude % process.env.ERR_RANGE + Number(process.env.ERR_RANGE);
longitude = longitude - longitude % process.env.ERR_RANGE + Number(process.env.ERR_RANGE);
var salt = bcrypt.genSaltSync(saltRounds);
var password = bcrypt.hashSync(unencrypt_password, salt);
var add_user_query = mysql.format(add_user_sql, [deviceID, latitude, longitude, username, password, salt, new Date(), dob, gender]);
...
}