|
|
|
อยากทราบวิธีเข้ารหัส-ถอดรหัสไฟล์ฐานข้อมูล MySql และการ import ไฟล์ .sql ค่ะ |
|
|
|
|
|
|
|
1. กำหนดพวก Max Upload ใน php.ini ครับ แต่ปกติแล้ว Size ขนาดนี้ใช้การ dump ผ่าน Command จะดีกว่าครับ
2. ลองดูพวก md5 ครับ
|
|
|
|
|
Date :
2013-06-13 10:07:41 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. ผมใช้ bigdump.php ครับ ลองหาดูน่าจะมีอยู่
2. ถ้าเข้ารหัสไม่ให้ใครอ่านได้ แต่เจ้าตัวยังเปิดอ่านได้คนเดียว ลองเข้าแบบ base64_encode http:// http://php.net/manual/en/function.base64-encode.php
การใช้ base64_encode จะยังสามารถถอดออกมาเป็นข้อความเดิมได้ ถ้ามีใครที่เข้าไปในฐานข้อมูลได้ ก็สามารถคัดลอกข้อความออกมาถอดรหัสได้ วิธีป้องกันขั้นต้นก็คือ ตอนเข้ารหัส เราต้องใส่ข้อความแปลกปลอมไปในตำแหน่งต่างๆ ด้วย
เช่น
$encode = base64_encode("ซารางเฮโย");
$encode = str_replace("aa", "yex013", $encode);
ข้อความที่ได้ ถ้าเอามาถอดรหัสก็จะได้ข้อความที่แปลกๆ ไปครับ
ถ้าจะนำกลับมาใช้ ก็ต้องแทนที่ yex013 ไปเป็น aa เหมือนเดิม ก่อนแล้วค่อยเรียกใช้ฟังก์ชั่นถอดรหัสครับ
|
|
|
|
|
Date :
2013-06-13 11:14:23 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
phpMyAdmin ไม่แน่ใจว่า Import แล้วบางครั้งข้อมูลจะเพี้ยนหรือเปล่าครับ แต่คิดว่า Version ใหม่ ๆ คงจะแก้ไขปัญหาไปหมดแล้วครับ
|
|
|
|
|
Date :
2013-06-13 11:14:32 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็อย่าให้ใครเข้าถึงฐานข้อมูลโดยตรงสิครับ
แต่ถ้าต้องการจริงๆ ก็ใช้ phpMyAdmin เวอร์ชั่นใหม่ๆ
แล้วเปลี่ยนชนิดข้อมูลที่ไม่อยากให้ใครอ่านเนี่ย
จาก VARCHAR เป็น VARBINARY
หรือ TEXT ให้เป็น BLOB
เพราะ phpMyAdmin เวอร์ชั่นหลังๆ จะแสดงข้อมูลชนิดนี้เป็นเลขฐาน 16 โดย default ครับ
|
|
|
|
|
Date :
2013-06-13 11:25:18 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หนูลองไปทำแล้วนะคะ แต่เป็นเรื่องการถอดรหัสและเข้ารหัสค่ะ ปัญหาที่พบก็คือ ไม่สามารถแสดงผลข้อความบนเว็บได้
จากภาพนะคะ สมมติหนูต้องการเข้ารหัสเฉพาะฟิลด์ที่ชื่อ lname และ email นะคะ
ตัวอย่างฐานข้อมูล
เมื่อ insert ข้อมูลเข้ามาพร้อมกับเข้ารหัส encode
จากนั้นหนูก็ืำการทดลอง select ข้อมูลใน mysql
Code (PHP)
select fname , decode(lname , '123') , decode(email , '123') from a123;
แต่พอมาเรียกดูจากหน้าเว็บเบราเซอร์ ปรากฏว่าข้อมูลขึ้นไม่ครบค่ะ
รบกวนพี่ๆช่วยดูโค๊ดด้วยนะคะ ไม่รู้เป็นเพราะอะไร ขอคำแนะนำด้วยค่ะ
mysql_form.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form save one page</title>
</head>
<body>
<form action="mysql_form2.php" name="frmMain" method="post" target="iframe_target">
<iframe id="iframe_target" name="iframe_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
<script language="JavaScript">
function showResult(result)
{
if(result==1)
{
document.getElementById("divResult").innerHTML = "<font color=green> Save successfully! </font> <br>";
}
else
{
document.getElementById("divResult").innerHTML = "<font color=red> Error!! Cannot save data </font> <br>";
}
}
</script>
<div id="divResult"></div>
<table width="320" border="1">
<th>Name</th>
<td><input name="fname" type="text" size="20" id="fname"></td>
</tr><tr>
<th>Surname </th>
<td><input type="text" name="lname" size="20" id="lname"></td>
</tr>
<tr>
<th>Email </th>
<td><input type="text" name="email" size="20" id="email"></td>
</tr>
</table>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
mysql_form2.php
<?
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("test");
$strSQL = "insert into a123 (fname,lname,email) values ('$fname', ENCODE('$lname','123') , ENCODE('$email','123')) ";
mysql_query("set NAMES UTF8");
$objQuery = mysql_query($strSQL);
if($objQuery)
{
echo "<script>window.top.window.showResult('1');</script>";
}
else
{
echo "<script>window.top.window.showResult('2');</script>";
}
mysql_close($objConnect);
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
mysql_form_show.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Show</title>
</head>
<body>
<?
mysql_connect("localhost","root","1234");
mysql_select_db("test");
$sql = "SELECT fname , DECODE(lname,'123') , DECODE(email,'123') FROM a123 ";
mysql_query("set NAMES UTF8");
$rs = mysql_query($sql);
while($arr = mysql_fetch_array($rs)){
?>
<p><?=$arr['fname'];?> <?=$arr['lname']; ?> <?=$arr['email'];?></p>
<?
}
?>
</body>
</html>
|
|
|
|
|
Date :
2013-06-13 14:49:38 |
By :
naomikijung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELECT fname , DECODE(lname,'123') , DECODE(email,'123') FROM a123
ต้องเพิ่ม AS เพื่อกำหนดชื่อฟิลด์สำหรับใช้แสดงผล หลังฟังก์่ชั่น DECODE ด้วยนะครับ
$sql = "SELECT fname , DECODE(lname,'123') AS lname , DECODE(email,'123') AS email FROM a123 ";
ปล. ถ้าไม่กำหนดชื่อที่ใช้แสดงจะต้องเรียกด้วย <?=$arr['DECODE(lname,'123')']; ?> <?=$arr['DECODE(email,'123')'];?> ซึ่งไม่แน่ใจว่าจะใช้ได้รึเปล่าครับ
|
ประวัติการแก้ไข 2013-06-13 16:54:49
|
|
|
|
Date :
2013-06-13 16:53:47 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2021-03-08 19:47:00 |
By :
ประยุทธ์ จันทร์โอชา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|