Tôi đang sử dụng sha256 để mã hóa mật khẩu. Tôi có thể lưu mật khẩu được mã hóa sha256 trong mysql. Nhưng tôi không thể đăng nhập với cùng một mệnh đề.Cách sử dụng sha256 trong php5.3.0
Chèn mã:
<?php
error_reporting(E_ALL^E_NOTICE);
$username = $_POST['uusername'];
$passcode = $_POST['ppasscode'];
$userflag = $_POST['uuserflag'];
//$passcodeen = hash('sha256',$passcode);
$passcodeen = hash('sha256', (get_magic_quotes_gpc() ? stripslashes($ppasscode) : $ppasscode));
$conn = mysql_connect("localhost","charles","charles") or die("connection failed with DB:".mysql_error());
mysql_select_db("sessiondb");
$query = "INSERT INTO users(username,passcode,userflag) values('$username','$passcodeen','$userflag')";
Chọn mã:
<?php
error_reporting(E_ALL^E_NOTICE);
@mysql_connect("localhost","charles","charles") or die("Connection failed".mysql_error());
@mysql_select_db("sessiondb") or die("Database doesn't exist".mysql_error());
//get user input
$username = $_POST['username'];
$ppasscode = $_POST['ppasscode'];
//$passcodeen = hash('sha256', $ppasscode);
$passcodeen = hash('sha256', (get_magic_quotes_gpc() ? stripslashes($ppasscode) : $ppasscode));
//get session value from mysql
$query = @mysql_query("select username, userflag from users where username ='$username' and passcode = '$passcodeen'") or die("Query execution failed".mysql_error());
Có điều gì sai? Tôi rất bối rối. Cảm ơn.
Bạn đang sử dụng trường VARCHAR để lưu trữ mật khẩu? Bởi vì kích thước tối đa trên varchars là 255 ký tự ... – davethegr8
Bạn có thể gửi một mẫu của băm như được lưu trữ trong cơ sở dữ liệu so với những gì nó trông giống như trong mã? –
Đối với sha256, bạn cần VARCHAR có ít nhất 64 ký tự. –