มาเปลี่ยน ระบบสมาชิก ให้ใช้รหัสผ่าน แบบ MD5 กันเถอะ
รหัสผ่านแบบ MD5 เป็นระบบที่นับว่ามีความปลอดภัยสูง เนื่องจากว่าเป็นการเข้าระหัส แบบ ทางเดียว
แปลว่า เมื่อเข้ารหัสแล้ว ก็จะไม่สามารถแก้กลับคืนได้
ซึ่งการเข้ารหัสที่ได้จะได้เป็นตัวอักษร ASCII ขนาด 32 ตัวอักษรตามมาตรฐาน RFC1321
วิธีทำนั้นจะมี 3 ส่วนด้วยกัน คือ
1. การเพิ่มสมาชิก
ก่อนอื่นต้องแก้ไขขนาดของฟิวด์ password ให้เท่ากับหรือมากกว่า 32
เพิ่มฟิวด์ activation_code (เอาไว้ใช้สำหรับ ยืนยันที่อีเมล์ และยืนยันการเปลี่ยนรหัสผ่าน เมื่อลืมรหัสผ่าน)
`activation_code` varchar(30) NOT NULL,
เข้ารหัสก่อนบรรทัด insert ข้อมูล
$arrChars = array("A","F","B","C","O","Q","W","E","R","T","Z","X","C","V","N");
$activationCode = $arrChars[rand(0,(sizeof($arrChars)-1))]."".rand(1000,9999)
.$arrChars[rand(0,(sizeof($arrChars)-1))].rand(1000,9999);
$pwd_name1=md5($_POST[''pwd_name1'']);
$result = mysql_query("insert into member
(member_id,member_pic,name,user,password,website,email,signup,signature,activation_code) values
(''$member_id'',''$Filename'',''$name'',''$user_name'',''$pwd_name1'',''$website'',''$email'',$signup,''$signature'',''$activationCode'')")
or die("Err Database");
โค๊ดด้านล่าง สำหรับ เปลี่ยนรหัสผ่านเดิมให้เป็น MD5 และ ใส่ activation_code ให้กับสมาชิกเก่า (กรณีที่มีสมาชิกเก่าอยู่ในระบบฐานข้อมูลมากๆ)
<?
include "config.inc.php";
mysql_select_db($db) ;
# เปิดไฟล์ Member
$SQL="Select * from member order by id";
$result=mysql_query($SQL);
$arrChars = array("A","F","B","C","O","Q","W","E","R","T","Z","X","C","V","N");
while ($row=mysql_fetch_array($result)) {
$user=trim($row["user"]);
$md5password=md5($row["password"]);
$activationCode = $arrChars[rand(0,(sizeof($arrChars)-1))]."".rand(1000,9999)
.$arrChars[rand(0,(sizeof($arrChars)-1))].rand(1000,9999);
mysql_query("UPDATE member set password=''$md5password'', activation_code=''$activationCode'' WHERE user=''$user'' ");
echo "<br>New Password and Activation code for user ".$user." = ".$activationCode;
}
mysql_close($LINK);
?>
<center><font face="Arial" size="4" color="#0000FF"> Activate Users Completed</font></center>
2. การเข้าระบบ
แก้ไข
$pwd_login=$_POST[''pwd_login''];
เป็น
$pwd_login=md5($_POST[''pwd_login'']);
3. ไฟล์ลืมรหัสผ่าน forget_password.php จะส่งรหัสผ่านใหม่ไปให้ที่อีเมล์ เมื่อผู้ใช้งานคลิ๊กยืนยันการเปลี่ยนรหัสแล้ว
ระบบจะแก้ไขรหัสเดิมให้เป็นรหัสใหม่ แล้วผู้ใช้งานก็สามารถเข้าระบบด้วยรหัสใหม่
forget_password.zip ขนาด 2.11 kb.
ดาวน์โหลดที่นี่
- คะแนนโหวต 5 /5 ดาว
- 1
- 2
- 3
- 4
- 5
คะแนนโหวต : 5 / 5 ดาว (จากจำนวนโหวต 3 โหวต)
เข้าชม : 2784 ดาวน์โหลด
413
|