私はアプリケーションをlocalhostに接続するためにPHPコードを使用しています。私のアプリケーション登録とログインはすでに成功していますが、パスワードに塩を追加したいと思います。だから私はこのリンクに従う:https://www.youtube.com/watch?v=WwxAyiAtrbM私のアプリケーションのユーザーのパスワードで塩を実装するが、私が追加した後、アプリケーションはユーザーを登録することはできません。なぜ登録できないのかわかりません。フィードバックが得られたら幸いです。以下は私のPHPコードです:これは、あなたの質問に直接答えではありませんがパスワードで塩を追加
<?php
class DbOperations{
private $con;
function __construct(){
require_once dirname(__FILE__).'/DbConnect.php';
$db = new DbConnect();
$this->con = $db->connect();
}
public function encrypt($string, $key){
$string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_ECB)));
}
public funtion decrypt($string, $key){
$string = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($string), MCRYPT_MODE_ECB));
}
public funtion hashword($string, $salt){
$string = crypt($string, '$P$' .$salt . '$');
}
/*CRUD -> C -> CREATE */
public function createUser($user_login, $user_pass,$user_email, $user_registered){
if($this->isUserExist($user_login,$user_email)){
return 0;
}else{
$password = hashword($password, $salt);
$stmt = $this->con->prepare("INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`,`user_email`,`user_registered`) VALUES (NULL, ?, ?, ?, ?);");
$stmt->bind_param("ssss",$user_login,$user_pass,$user_email,$user_registered);
if($stmt->execute()){
return 1;
}else{
return 2;
}
}
}
public function userLogin($user_login, $user_pass){
$user_pass = md5($user_pass);
$stmt = $this->con->prepare("SELECT ID FROM wp_users WHERE user_login = ? AND user_pass = ?");
$stmt->bind_param("ss",$user_login,$user_pass);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
public function getUserByUsername($user_login){
$stmt = $this->con->prepare("SELECT * FROM wp_users WHERE user_login = ?");
$stmt->bind_param("s",$user_login);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
private function isUserExist($user_login, $user_email){
$stmt = $this->con->prepare("SELECT ID FROM wp_users WHERE user_login = ? OR user_email = ?");
$stmt->bind_param("ss", $user_login, $user_email);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
}
?>
パスワードを暗号化して確認するために[password_hash](http://php.net/manual/en/function.password-hash.php)を使用してください。 – DarkBee
はなぜ塩を追加しますか?あなたはこれで生きていくつもりならば、これであなたの時間を無駄にしていることに気づくでしょう。これは教育目的ですか? –
@ Fred-ii-これはクライアントショップアプリ用です、今私の上司は私にワードプレスのwoocommerceで私のアプリケーションのログインを接続したい、私は成功ワードプレスと私のアプリケーションを接続し、私のユーザー情報はワードプレスでwpユーザーに送信されますMD5として設定します。しかし、私のユーザーがワードプレスでアカウントを登録すると、パスワードは$ P $ Bにハッシュされるので、私はこれらのパスワードで自分のアプリにログインできません。 –