|
|
|
ระบบ login ทำไมเข้ารหัส ด้วย md 5 สามารถเข้ารหัสและถอดรหัสได้ แต่พอเปลี่ยนเป็น sha1 + salt หรือsha1 อย่างเดียวไม่ได้คะ |
|
|
|
|
|
|
|
code ระบบ login เข้ารหัส ด้วย md 5 สามารถเข้ารหัสและถอดรหัสได้ แต่พอเปลี่ยนเป็น sha1 + salt หรือsha1 อย่างเดียว จะสามารถเข้ารหัสได้แต่พอจะ login มันบอกว่ารหัสผ่านไม่ตรงกันค่ะ
code register ค่ะ
Code (PHP)
function process_form_edit() {
include "include/connect.inc.php";
//รับค่าจากฟอร์มแก้ไข
$salt = '}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN'; // random string
$mem_user = $_POST["mem_user"];
$mem_pass = $_POST["mem_pass"];
$mem_name = $_POST["mem_name"];
$encodemem_pass = sha1($salt.$_POST["mem_pass"]);
$sql1 = "SELECT * FROM member where mem_user='$mem_user' and mem_pass='$mem_pass'";
$query1 = mysql_db_query($dbname, $sql1);
$num1 = mysql_num_rows($query1);
if($num1 == 0){
$sql = "INSERT INTO member (mem_user, mem_pass, mem_name, mem_status)
VALUES ('$mem_user', '$encodemem_pass', '$mem_name', 'USER')";
$result=mysql_db_query($dbname,$sql);
if ($result){
echo '<table width="70%" align="center" border="0" height="350">';
echo "<tr><td align='center' height='100'><b>สมัครสมาชิกเรียบร้อยแล้ว<br>กรุณาเข้าสู่ระบบ</td></tr>";
echo "</table><br>";
echo "<meta http-equiv='refresh' content='3; url=index.php?Category=Login'>";
}
}else{
echo '<table width="70%" align="center" border="0" height="350">';
echo "<tr><td align='center' height='100' style='color: red;'>สมัครสมาชิกไม่สำเร็จ<br>เนื่องจากมี User Name นี้แล้ว</td></tr>";
echo "</table><br>";
echo "<meta http-equiv='refresh' content='3; url=index.php?Category=Register'>";
}
}
code check loginค่ะ
Code (PHP)
<?php
if($_POST["user"]!=""){
$salt = '}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN'; // random string
$sqlLogin = "SELECT * FROM member WHERE mem_user='".trim($_POST["user"])."' AND mem_pass='".trim(sha1($salt.$_POST["mem_pass"]))."'";
$resultLogin = mysql_db_query($dbname, $sqlLogin);
$numLogin = mysql_num_rows($resultLogin);
if($numLogin>0){
$row = mysql_fetch_array($resultLogin);
$_SESSION["login_id"] = $row[mem_id];
$_SESSION["login_user"] = $row[mem_user];
$_SESSION["login_name"] = $row[mem_name];
$_SESSION["login_status"] = $row[mem_status];
echo "<meta http-equiv='refresh' content='0; url=index.php'>";
}else{
$_SESSION["login_status"] = "";
$loginError = "<font color='red'>ไม่สามารถเข้าสู่ระบบได้ ชื่อผู้ใช้ หรือ รหัสผ่าน ไม่ถูกต้อง</font>";
}
}
?>
รบกวนด้วยนะคะ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2014-09-28 21:44:46 |
By :
KwangKie |
View :
1813 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo ออกมาดูก่อนก็ดีน่ะครับ
|
|
|
|
|
Date :
2014-09-28 22:26:26 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
md5 ก็ถอดรหัสกลับไม่ได้ครับ
เช่น $a=md5( 'b'+'c'); เราไม่สามารถถอด $a กลับมาเป็น 'bc' ได้ครับ ทำไปได้ทางเดียว
ส่วนการเปรียบเทียบ
ก็จะใช้ if( md5( 'b'+'c') == $a) echo 'ok ตรงกัน"; else echo 'ไม่ตรงกัน');
|
|
|
|
|
Date :
2014-09-28 23:19:15 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
code register
Code (PHP)
12.$sql1 = "SELECT * FROM member where mem_user='$mem_user' and mem_pass='$mem_pass'";
code check login
Code (PHP)
04.$sqlLogin = "SELECT * FROM member WHERE mem_user='".trim($_POST["user"])."' AND mem_pass='".trim(sha1($salt.$_POST["mem_pass"]))."'";
ลองเปรียบเทียบดูครับว่าควรจะแก้อย่างไร
|
|
|
|
|
Date :
2014-09-28 23:24:15 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|