我使用的是php 7.1.6。我正在尝试使用password_hash但它似乎没有工作。这是我的代码:
$post = $this->input->post();
$maxid = $this->db->query('SELECT MAX(App_Users.ID) AS MAXID FROM App_Users')->row()->MAXID;
$maxid = $maxid + 1;
$hash = password_hash($post['Password'], PASSWORD_DEFAULT);
$this->db->query("INSERT INTO APP_USERS (ID, NAME, PASSWORD)
VALUES(".$maxid.", '".$post['Name']."', '". $hash ."')");
密码正在存储而不进行散列。 $ post ['Password'] ='1234',它作为'1234'存储在数据库中。
我做错了吗?
答案 0 :(得分:-1)
//this is normal way to generate has password//
$hash = password_hash("input value", PASSWORD_DEFAULT);
$this->db->query("INSERT INTO APP_USERS (ID, NAME, PASSWORD)
VALUES(".$maxid.", '".$post['Name']."', '". $hash ."')");
//In this way we can provide cost and salt to generate hash value//
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
$hash = password_hash("input value", PASSWORD_BCRYPT, $options);
您通过$ post ['您想要散列的值']所获得的输入值。
希望它对你有所帮助