我不熟悉该库php-mysqlidb但从外观上看,我认为它不会像劳伦斯在评论中指出的那样起作用。
您可能需要做的确实是将其作为原始查询运行:
https ://github.com/joshcam/PHP-MySQLi-Database-Class#running-raw-sql-queries
另外,我不确定您是否正确使用了 MySQL 函数,请看一下:https ://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_aes-encrypt
您应该避免将密码存储为加密字符串(可以解密,有人会说这是安全性差/做法)。
反而; 为什么要使用 PHP 的内置散列功能?
看看: http: //php.net/manual/en/function.password-hash.php
当用户输入纯文本密码时,例如$my_password = '123456'
- 像这样散列它:
$hashed_password = password_hash($my_password, PASSWORD_DEFAULT);
然后将值存储$hashed_password
在数据库中。
当您想验证用户是否输入了正确的密码时,只需将用户输入和数据库中的存储值获取并使用此函数来比较哈希是否匹配:
http://php.net/manual/en/function.password-verify.php
像这样:
$login_password = '123456';
$db_hashed_pass = '$2y$10$.vG....'; // this value is loaded from db for that user
if (password_verify($login_password, $db_hashed_pass)) {
// password is correct
} else {
// password is wrong
}
这样,即使您的数据库受到损害,它也更加安全;我相信没有人能够锻炼使用的密码是什么,因为它只是原始密码的哈希值。