我正在开发需要登录页面的网络应用程序,一切正常,直到我尝试转换为PDO并使用准备好的查询在这里是我的代码:
$req=$idconnex->prepare("SELECT * FROM `enseignant` WHERE ens_cin=:cin AND ens_pass=:pass");
$req->bindParam(':cin',$_GET["login"]);
$req->bindParam(':pass',$_GET["password"]);
$res=$idconnex->exec($req);
if(!empty($res) AND $res->rowCount==1)
{echo 'SUCCESS';}
else
{echo 'FAIL';}
Run Code Online (Sandbox Code Playgroud)
出现警告:
警告:PDO :: exec()期望参数1为字符串,对象在...中给出
并且即使我插入正确的参数,它也会返回FAIL!
我一直在线阅读MD5不是很安全,我已经决定将我的网站切换到使用SHA512,我之前从未这样做过,所以我只是要求你检查一下我是否做得对,或者是否有另一种更安全的哈希方法可用于存储密码?
$ upass是我需要哈希的用户密码.
这是我与MD5的原始PHP:
$uname = mysql_real_escape_string($_POST['uname']);
$sname = mysql_real_escape_string($_POST['sname']);
$email = mysql_real_escape_string($_POST['email']);
$upass = md5(mysql_real_escape_string($_POST['pass']));
Run Code Online (Sandbox Code Playgroud)
这是我使用SHA的新PHP:
$uname = mysql_real_escape_string($_POST['uname']);
$sname = mysql_real_escape_string($_POST['sname']);
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);
$upass = hash('SHA512', $upass);
Run Code Online (Sandbox Code Playgroud)
这里也是单词"password"的散列字符串,只是为了确保哈希工作正常.
SHA512:
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e
MD5:
5f4dcc3b5aa765d61d8327deb882cf99
感谢您提前提供任何帮助/建议.
我一直在研究将我的密码加密到mySQL数据库的最佳方法,但我无法确定密码的最佳加密方式.
md5(据说由于各种安全原因我不知道有缺陷,但是以某种方式被WordPress使用.为什么这个功能如此受到批评?
sha1()只是受到md计算复杂性更强的系列启发的另一个功能.
password() 似乎建议使用.
和PASSWORD()MySQl
然后,hash()在PHP 5.1.2中使用的新功能.和更新的版本
MySQl PASSWORD()与上面提到的其他php函数有什么不同?
我是PHP的新手,我需要一点帮助.我很确定这可能是最常见的问题之一,并且很容易修复,但我一直在努力.我会这么愚蠢
好吧,所以这是我的问题:每次我去我的localhost尝试打开我的PHP站点它不会因为我每次都得到这个错误.
"解析错误:语法错误,第4行的C:\ xampp\htdocs\exam\_register.php中的意外'$ db'(T_VARIABLE)"
这是我的PHP代码.
<?php
session_start()
$db = mysqli_connect("localhost", "root", "", "authentication");
if (isset($_POST['register_btn'])) {
session_start();
$username = mysql_real_escape_string($_POST['username']);
$emailaddress = mysql_real_escape_string($_POST['emailaddress']);
$password = mysql_real_escape_string($_POST['password']);
$password2 = mysql_real_escape_string($_POST['password2']);
if ($password == $password2) {
$password = md5($password);
$sql = "INSERT INTO users(username, email, password) VALUES ('$username', '$emailaddress', '$password')";
mysql_query($db, $sql);
$_SESSION['message'] = "You are now registered!";
$_SESSION['username'] = $username;
header("location: home.php");
}else {
$_SESSION['message'] = "The two passwords do not match";
}
}
?>
Run Code Online (Sandbox Code Playgroud) 我有以下代码:(只是用于加密/散列的测试文件)
<!doctype html>
<html>
<head></head>
<body>
<?php
error_reporting('off');
if (isset($_POST['submit'])) {
$salt = "2bZ@<^$";
$hash = hash("sha512", $_POST['hash']);
$hash = $salt . $hash;
$hash = md5($hash);
echo $hash;
$hashLen = strlen($hash);
echo "<br>The length of the hashed word is " . $hashLen . " characters long!";
}
?>
<form action="hashed.php" method="post">
<input type="text" name="hash">
<input type="submit" value="Hash" name="submit">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这有多安全?我知道这很可能是被黑客入侵,但需要多长时间?我目前正在制作一个php/mysqli注册表,并希望尽可能安全地使用户的密码,这样黑客就需要很长时间才能破解用户的密码.为了加密它,我可以使用它,例如:
用sha512,md5(md5),加入不同的盐,两个sha512,另一个md5和另一种不同的盐来混合它!
听起来有多安全?黑客破解密码需要多长时间?请您使用非常非常安全的加密方法告诉我.此外,我想让用户使用cookie登录:需要一种安全的方式将他们的信息存储在cookie中!
提前致谢 :)
我有一个小的登录表单,我将通过GET发送名称和密码,但我不想将密码放在纯文本的URL中.按下提交按钮之后,但是在通过GET发送之前,我可以Md5吗?
我想检查我的数据库中是否已存在用户名.如果是,我想重定向回我的注册页面.我的代码用于添加用户名,但不检查用户名是否存在.请帮忙!!!这是register.php页面的代码.代码完全跳过检查"用户名"并插入数据库(如果存在或不存在).
<?php
error_reporting (E_ALL ^ E_NOTICE);
include ('dbconn.php');
session_start();
$GLOBALS[$error_message];
$GLOBALS[$username];
if(isset($_POST['submit']))
{
$error = array();
if(empty($_POST['username']))
{
$error[] = 'Please enter a username. ';
}
else
{
$username = mysqli_real_escape_string($connection, $_POST['username']);
}
if(empty($_POST['password']))
{
$error[] = 'Please enter a password. ';
}
else
{
$password = mysqli_real_escape_string($connection,$_POST['password']);
}
if(empty($_POST['cpassword']))
{
$error[] = 'Please confirm password. ';
}
else
{
$cpassword = mysqli_real_escape_string($connection,$_POST['cpassword']);
}
if($password == $cpassword)
{
$mainpassword= $password;
}
else
{
$error[] = 'Your passwords do not match. …Run Code Online (Sandbox Code Playgroud) 我有一个网站,我在服务器端使用PHP,mysql作为数据库.我使用以下脚本从数据库中检索数据.有人能让我知道这段代码是否容易受到注入攻击?如果是这样,请你解决一下吗?
<?php
// PHP script
$usrname=$_POST['usrname'];
$_SESSION['usremail']=$usrname;
$usrpassword=$_POST['passwd'];
$db=mysql_select_db('mydb',$connection);
$result=mysql_query("select usrfname,usrlname from userinformation where usremail='$usrname' and usrpassword='$usrpassword'") or die('failed to login');
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏.
谢谢

码:
$stmt->bind_param("s", md5($input['user'] . $config['salt']));
Run Code Online (Sandbox Code Playgroud)
PHP错误消息:
只应通过引用传递变量
我一直在研究这个项目,但现在我被困住了.我是PHP的新手.该怎么办?
有谁能告诉我这有什么不对吗?
function hashmyshit($pass){
for ( $i = 0; $i < 1000; $i++ ){
MD5($pass);
}
return $pass;
}
Run Code Online (Sandbox Code Playgroud)
以及如何多次迭代密码散列过程.
我正在使用PHP进行注册过程.我设法获取提交的表单数据并将其保存到mysql表中,但问题是,如果我刷新页面,用户会再次注册.这是我的PHP代码,我已将其包含在带有其他内容的div标记中:
<?php
if(isset($_POST["registration"])){
$con = mysqli_connect("localhost", "user", "pass", "name") or die("connection error");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = $_POST["name"];
$lname = $_POST["lname"];
$email = $_POST["email"];
$pass = $_POST["pass"];
$company = $_POST["company"];
$webpage = $_POST["webpage"];
$phone = $_POST["phone"];
$country = $_POST["country"];
$city = $_POST["city"];
date_default_timezone_set('Asia/Tbilisi');
$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];
$reg_date = $year . "-" . $month …Run Code Online (Sandbox Code Playgroud) 在Php中加密密码的最佳方法是什么?Codeigniter的文档说密码应该使用php的密码哈希扩展进行哈希处理.到目前为止,我一直在使用codeigniter的加密密钥加密密码.有什么建议.