ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingการเข้ารหัส password ในฐานข้อมูลระหว่าง AES กับ MD5
หน้า: 1 [2]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: การเข้ารหัส password ในฐานข้อมูลระหว่าง AES กับ MD5  (อ่าน 13143 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
icez
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 296
ออฟไลน์ ออฟไลน์

กระทู้: 2,886



ดูรายละเอียด
« ตอบ #20 เมื่อ: 24 กรกฎาคม 2011, 16:50:55 »

md5 ไม่ใช่การเข้ารหัสนะครับ มันคือการทำ checksum (ผลรวมเป็น hash) ของข้อมูลที่ป้อนเข้าไป
ซึ่งการทำ checksum เนี่ย มันคือการ " บวก ลบ คูณ หาร " ข้อมูลที่ป้อนเข้าไปให้ออกมาเป็นเลขชุดนึงที่มีความยาวแน่นอน

และที่บอกว่ามันถอดรหัสไม่ได้ สาเหตุเพราะ ถ้าถามคุณว่า เลข 100000 เกิดจากเลขอะไรมาบวกกันบ้าง
โดยไม่บอกว่ามีเลขกี่ชุดมาบวกกัน จะมีใครตอบได้บ้างมั้ยครับว่าคำตอบคืออะไร? นี่คือหลักการของการทำ checksum ครับ

เพราะงั้น md5 ถอดรหัสไม่ได้แน่นอน แต่สามารถทำให้รหัสซ้ำกันได้ โดยที่ข้อมูลไม่ต้องเหมือนกัน
(มีคนเจอช่องโหว่นี้มาแล้ว)

ตัวที่จะเอามาใช้แทน md5 ได้ก็คือ sha1 ครับ
บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
dreamer
คนรักเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 134



ดูรายละเอียด
« ตอบ #21 เมื่อ: 24 กรกฎาคม 2011, 21:08:43 »

md5 ไม่ใช่การเข้ารหัสนะครับ มันคือการทำ checksum (ผลรวมเป็น hash) ของข้อมูลที่ป้อนเข้าไป
ซึ่งการทำ checksum เนี่ย มันคือการ " บวก ลบ คูณ หาร " ข้อมูลที่ป้อนเข้าไปให้ออกมาเป็นเลขชุดนึงที่มีความยาวแน่นอน

และที่บอกว่ามันถอดรหัสไม่ได้ สาเหตุเพราะ ถ้าถามคุณว่า เลข 100000 เกิดจากเลขอะไรมาบวกกันบ้าง
โดยไม่บอกว่ามีเลขกี่ชุดมาบวกกัน จะมีใครตอบได้บ้างมั้ยครับว่าคำตอบคืออะไร? นี่คือหลักการของการทำ checksum ครับ

เพราะงั้น md5 ถอดรหัสไม่ได้แน่นอน แต่สามารถทำให้รหัสซ้ำกันได้ โดยที่ข้อมูลไม่ต้องเหมือนกัน
(มีคนเจอช่องโหว่นี้มาแล้ว)

ตัวที่จะเอามาใช้แทน md5 ได้ก็คือ sha1 ครับ


ขอข่าวนี้ได้มั้ยครับ ว่ามีคนเจอช่องโหว่ แล้วอะครับ

คือถ้ามีคนเจอช่องโหว่จริง MD5 จะไม่ได้รับการยอมรับเลยนะครับ
เพราะมันมีโอกาสผิดพลาด ถึงแม้จะ 1 ในล้านก็ตาม

ถ้าเจอช่องโหว่จริงพวกนักคณิตศาสตร์ที่พูสูจน์อัลกอร์พวกนี้ ก็หน้าแต่กกันหมดเลยอะดิ
บันทึกการเข้า
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 132
ออฟไลน์ ออฟไลน์

กระทู้: 986



ดูรายละเอียด เว็บไซต์
« ตอบ #22 เมื่อ: 24 กรกฎาคม 2011, 22:00:13 »

md5 ไม่ใช่การเข้ารหัสนะครับ มันคือการทำ checksum (ผลรวมเป็น hash) ของข้อมูลที่ป้อนเข้าไป
ซึ่งการทำ checksum เนี่ย มันคือการ " บวก ลบ คูณ หาร " ข้อมูลที่ป้อนเข้าไปให้ออกมาเป็นเลขชุดนึงที่มีความยาวแน่นอน

และที่บอกว่ามันถอดรหัสไม่ได้ สาเหตุเพราะ ถ้าถามคุณว่า เลข 100000 เกิดจากเลขอะไรมาบวกกันบ้าง
โดยไม่บอกว่ามีเลขกี่ชุดมาบวกกัน จะมีใครตอบได้บ้างมั้ยครับว่าคำตอบคืออะไร? นี่คือหลักการของการทำ checksum ครับ

เพราะงั้น md5 ถอดรหัสไม่ได้แน่นอน แต่สามารถทำให้รหัสซ้ำกันได้ โดยที่ข้อมูลไม่ต้องเหมือนกัน
(มีคนเจอช่องโหว่นี้มาแล้ว)

ตัวที่จะเอามาใช้แทน md5 ได้ก็คือ sha1 ครับ



ขอข่าวนี้ได้มั้ยครับ ว่ามีคนเจอช่องโหว่ แล้วอะครับ

คือถ้ามีคนเจอช่องโหว่จริง MD5 จะไม่ได้รับการยอมรับเลยนะครับ
เพราะมันมีโอกาสผิดพลาด ถึงแม้จะ 1 ในล้านก็ตาม

ถ้าเจอช่องโหว่จริงพวกนักคณิตศาสตร์ที่พูสูจน์อัลกอร์พวกนี้ ก็หน้าแต่กกันหมดเลยอะดิ


คุณไม่ต้องไปกังวลเรื่องการยอมรับอะไรกับ md5 มากหรอกครับ
http://php.net/manual/en/function.md5.php md5
http://www.php.net/manual/en/function.sha1.php sha1
อย่างที่คุณ icez ว่ามามันคือการคำณวนจริงๆ (Calculate)

ลำพังใช้แค่ md5 ทีเดียว คุณอาจหนาวๆร้อนๆได้ แต่ถ้าคุณเอามันมาผสมกัน เช่นเอาคีย์หลักของเว็บผสมลงไป อาจจะทำหลายๆชั้น ตย.
โค๊ด:
md5(md5($key.":".$password.$key));
ผลลัพธ์ของรหัสผ่าน abcd ก็ออกมาแตกต่างจาก md5 รอบเดียวธรรมดาๆแล้ว
แล้วยิ่งถ้าเอา sha1 ผสมเข้าไปด้วย ยิ่งดูยากยุ่งเหยิงแกะไม่ออกเข้าไปใหญ่
อันนี้ตอบโจทย์สำหรับคนที่กลัวการเจอช่องโหว่รหัสซ้ำนะครับ ถ้าใส่คีย์ซ้ำๆซ้อนๆ จัดตำแหน่งเอาเอง อาจใช้ sha1 มาช่วยอีกทีสองที เก่งยังไงก็แกะยาก

ทีนี้มันมีอีกทางหนึ่งที่ผมว่าคุณควรไปกังวลตรงนั้นมากกว่า นั่นคือการสุ่มเดารหัสผ่าน  (ขออภัยถ้ารู้แล้วครับ)
http://en.wikipedia.org/wiki/Brute-force_attack (brute force attack)
ซึ่งคนร้ายไม่ต้องมานั่งแฮค server เพื่อเอารหัสไปเทียบกับ database key อะไรนั่นเลย ใช้โปรแกรมสุ่มไปเรื่อยๆจนกว่าจะเจอ
คนที่จะโดนด้วยวิธีนี้ก็คือคนตั้งรหัสผ่านแบบง่ายๆ
ทางช่วยป้องกันก็คือนับจำนวนครั้งที่ log in ผิด เช่นเกิน 3 ครั้งให้ captcha โผล่มาและบังคับเช็ค captcha & ถ้าเกิน 10 ครั้งให้รอครึ่งชั่วโมง เป็นต้น
บันทึกการเข้า

icez
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 296
ออฟไลน์ ออฟไลน์

กระทู้: 2,886



ดูรายละเอียด
« ตอบ #23 เมื่อ: 24 กรกฎาคม 2011, 22:01:42 »

http://en.wikipedia.org/wiki/MD5#cite_note-8

http://www.kb.cert.org/vuls/id/836068
บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
bigz3105
ก๊วนเสียว
*

พลังน้ำใจ: 42
ออฟไลน์ ออฟไลน์

กระทู้: 393



ดูรายละเอียด เว็บไซต์
« ตอบ #24 เมื่อ: 24 กรกฎาคม 2011, 22:31:26 »

md5 ไม่ใช่การเข้ารหัสนะครับ มันคือการทำ checksum (ผลรวมเป็น hash) ของข้อมูลที่ป้อนเข้าไป
ซึ่งการทำ checksum เนี่ย มันคือการ " บวก ลบ คูณ หาร " ข้อมูลที่ป้อนเข้าไปให้ออกมาเป็นเลขชุดนึงที่มีความยาวแน่นอน

และที่บอกว่ามันถอดรหัสไม่ได้ สาเหตุเพราะ ถ้าถามคุณว่า เลข 100000 เกิดจากเลขอะไรมาบวกกันบ้าง
โดยไม่บอกว่ามีเลขกี่ชุดมาบวกกัน จะมีใครตอบได้บ้างมั้ยครับว่าคำตอบคืออะไร? นี่คือหลักการของการทำ checksum ครับ

เพราะงั้น md5 ถอดรหัสไม่ได้แน่นอน แต่สามารถทำให้รหัสซ้ำกันได้ โดยที่ข้อมูลไม่ต้องเหมือนกัน
(มีคนเจอช่องโหว่นี้มาแล้ว)

ตัวที่จะเอามาใช้แทน md5 ได้ก็คือ sha1 ครับ


ขอข่าวนี้ได้มั้ยครับ ว่ามีคนเจอช่องโหว่ แล้วอะครับ

คือถ้ามีคนเจอช่องโหว่จริง MD5 จะไม่ได้รับการยอมรับเลยนะครับ
เพราะมันมีโอกาสผิดพลาด ถึงแม้จะ 1 ในล้านก็ตาม

ถ้าเจอช่องโหว่จริงพวกนักคณิตศาสตร์ที่พูสูจน์อัลกอร์พวกนี้ ก็หน้าแต่กกันหมดเลยอะดิ

ถ้าคุณได้เรียน ทฤษฏีคอมไพเลอร์ มาคุณจะไม่พูดอย่างนี้หรอก
แต่ก่อนผมก็คิดเหมือนคุณนี่ละว่า พวก software ด้านความปลอดภัยต่าง ๆ นั้นมันไม่มีช่องโหว่

แต่หลังจากที่เรียนแล้วพบว่า ทฤษฏี ต่าง ๆ ในระบบคอมพิวเตอร์นั้นเจาะได้ทุกระบบครับมันมี

ช่องโหว่ทุกอย่างครับ ไม่มีอะไรเลยที่ยอมรับและปลอดภัย 100%
บันทึกการเข้า

รับทำเว็บไซด์ขนาดเล็ก ไปจนถึง ERP
BIRD [SUPHAN] I'm Programmer,I have no life. colorful life.
web & mobile app developer. รับทำเว็บไซด์ & mobile app.
รับทำระบบดึงสินค้า & จัดการ shipping จากจีน
ของเล่นเด็ก ของเล่นเด็ก ราคาถูก
dreamer
คนรักเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 134



ดูรายละเอียด
« ตอบ #25 เมื่อ: 24 กรกฎาคม 2011, 23:16:02 »

1. ผมเคยเรียนคอมไพล์เลอร์ ครับ
2. ผมยอมรับว่า ระบบ security ต่างๆ มีช่องโหว่ แต่ผมกำลังพูดถึง MD5 ครับ ไม่ใช่ระบบรักษาความปลอดภัย
3. ผมรู้ครับที่ ผลลัพธ์ของ MD5 เกิดจากคำนวณ ผมเคยรับจ้างเขียนโปรแกรมเพื่อคำนวณ MD5 ผมบอกเขาไปแล้วว่า php มี function นี้อยู่แล้ว แต่เขาอยากให้เขียนใหม่
4. เป้าหมายหลักของ MD5 คือการแปลงจากค่าหนึ่งไปเป็นอีกค่าหนึ่ง ซึ่งค่าที่เป็นผลลัพธ์จะต้องไม่ซ้ำกับค่ากับค่าที่แปลงมาจากค่าอื่นเลย นี่คือเป้าหมายของมัน  แต่ถ้าสมมุติว่ามันเกิดมีค่าที่ได้จากการทำ MD5 ของ 2 ค่าแล้วได้ผลลัพธ์เหมือนกัน แสดงว่ามันก็ผิดเป้าหมาย ผมจึงบอกว่ามันใช่ไม่ได้
5. ต่อจากข้อ 4 ถ้ามีการพิสูจน์ได้ว่า MD5 ของ 2 ค่าที่ต่างกัน ได้ผลลัพธ์เหมือนกัน อัลกอลิทึมที่สอนกันในชั้นเรียนก็ผิดสิครับ

ผมตอบก่อนที่จะไปอ่าน link ของคุณ icez นะครับ
อ่านเสร็จแล้วจะมาตอบอีกครั้งครับ
บันทึกการเข้า
icez
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 296
ออฟไลน์ ออฟไลน์

กระทู้: 2,886



ดูรายละเอียด
« ตอบ #26 เมื่อ: 24 กรกฎาคม 2011, 23:26:10 »

1. ผมเคยเรียนคอมไพล์เลอร์ ครับ
2. ผมยอมรับว่า ระบบ security ต่างๆ มีช่องโหว่ แต่ผมกำลังพูดถึง MD5 ครับ ไม่ใช่ระบบรักษาความปลอดภัย
3. ผมรู้ครับที่ ผลลัพธ์ของ MD5 เกิดจากคำนวณ ผมเคยรับจ้างเขียนโปรแกรมเพื่อคำนวณ MD5 ผมบอกเขาไปแล้วว่า php มี function นี้อยู่แล้ว แต่เขาอยากให้เขียนใหม่
4. เป้าหมายหลักของ MD5 คือการแปลงจากค่าหนึ่งไปเป็นอีกค่าหนึ่ง ซึ่งค่าที่เป็นผลลัพธ์จะต้องไม่ซ้ำกับค่ากับค่าที่แปลงมาจากค่าอื่นเลย นี่คือเป้าหมายของมัน  แต่ถ้าสมมุติว่ามันเกิดมีค่าที่ได้จากการทำ MD5 ของ 2 ค่าแล้วได้ผลลัพธ์เหมือนกัน แสดงว่ามันก็ผิดเป้าหมาย ผมจึงบอกว่ามันใช่ไม่ได้
5. ต่อจากข้อ 4 ถ้ามีการพิสูจน์ได้ว่า MD5 ของ 2 ค่าที่ต่างกัน ได้ผลลัพธ์เหมือนกัน อัลกอลิทึมที่สอนกันในชั้นเรียนก็ผิดสิครับ

ผมตอบก่อนที่จะไปอ่าน link ของคุณ icez นะครับ
อ่านเสร็จแล้วจะมาตอบอีกครั้งครับ
เอาแบบไม่ต้องไปพึ่งพาอะไรเลยนะครับ


ผลลัพท์ของ MD5 มีความยาวตายตัวเสมอ คือ 128 bit รูปแบบค่าที่เป็นไปได้ของมันจึงมีแค่ 2^128 เท่านั้นครับ
ไม่มากมายอะไรนัก แค่ ราวๆ "340 ล้านล้านล้านล้านล้านล้าน" (3.4 x 1038) รูปแบบที่ไม่ซ้ำกัน
เพราะงั้น ถ้ามีรูปแบบมากกว่านี้อีก 1 รูปแบบ จะทำให้ผลลัพท์ "ต้อง" มีการซ้ำกับผลลัพท์ของข้อความต้นแบบก่อนหน้านี้แน่นอนครับ

บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
dreamer
คนรักเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 134



ดูรายละเอียด
« ตอบ #27 เมื่อ: 25 กรกฎาคม 2011, 00:08:59 »

ขอบคุณ คุณ icez

เท่าที่อ่านดูเขาพบอัลกอลิทึมในการหา data 2 ตัวที่มี MD5 เหมือนกันได้แล้ว ตั้งแต่ปี 2004-2005

คนที่ออกแบบอัลกอลิทึม ก็ออกมายอมรับเองว่า

MD5's designer Ron Rivest wrote, "md5 and sha1 are both clearly broken (in terms of collision-resistance),"

จากในข้อความนี้ก็แสดงว่า ทั้ง MD5 และ SHA1 ก็ใช้ไม่ได้ทั้งคู่

ใน wiki บอกว่าหน่วยงานของรัฐบาลของสหรัฐจะใช้การเข้ารหัสแบบ SHA-2

----
เรื่องรูปแบบที่เป็นไปได้ของการเข้ารหัส ผมก็ลืมคิดเรื่องนี้ไป

และมันก็น่าคิดว่า ทำไมเขาถึงยังปล่อยให้ใช้กันมาได้ ทั้งๆ ที่มันมีโอกาสซ้ำได้
น่าจะมีคนคำนวณตรงนี้ได้ก่อนแล้ว
บันทึกการเข้า
WinWinSolution
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 8



ดูรายละเอียด
« ตอบ #28 เมื่อ: 25 กรกฎาคม 2011, 10:15:43 »

ขอบคุณครับสำหรับคำตอบทุกๆโพส  ขอบคุณครับ

 wanwan017
บันทึกการเข้า

if  you!=(solution)
    you=problem;
else exit ( ^ ^ );
WinWinSolution
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 8



ดูรายละเอียด
« ตอบ #29 เมื่อ: 26 กรกฎาคม 2011, 09:06:19 »

update ผมลอง decode  md5 กับ เว็บนี้ดูมันถอดรหัสกลับมาได้ครับ
หรือยังงัยกันแน่ ช่วยดูหน่อยครับ

http://md5.my-addr.com/md5_dec...er_online/md5_decoder_tool.php
บันทึกการเข้า

if  you!=(solution)
    you=problem;
else exit ( ^ ^ );
amazegu
สมุนแก๊งเสียว
*

พลังน้ำใจ: 80
ออฟไลน์ ออฟไลน์

กระทู้: 875



ดูรายละเอียด
« ตอบ #30 เมื่อ: 26 กรกฎาคม 2011, 09:25:19 »

update ผมลอง decode  md5 กับ เว็บนี้ดูมันถอดรหัสกลับมาได้ครับ
หรือยังงัยกันแน่ ช่วยดูหน่อยครับ

http://md5.my-addr.com/md5_dec...er_online/md5_decoder_tool.php


รหัสมันง่ายเกินไปหรือเปล่าคับ ผมทดสอบกับพาสของผม มันบอกว่า Hash"xxx" not found in database. wanwan023 wanwan023 wanwan023
บันทึกการเข้า
itportal
ก๊วนเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 350



ดูรายละเอียด เว็บไซต์
« ตอบ #31 เมื่อ: 26 กรกฎาคม 2011, 10:08:04 »

update ผมลอง decode  md5 กับ เว็บนี้ดูมันถอดรหัสกลับมาได้ครับ
หรือยังงัยกันแน่ ช่วยดูหน่อยครับ

http://md5.my-addr.com/md5_dec...er_online/md5_decoder_tool.php


รหัสมันง่ายเกินไปหรือเปล่าคับ ผมทดสอบกับพาสของผม มันบอกว่า Hash"xxx" not found in database. wanwan023 wanwan023 wanwan023


เค้าเก็บรหัสผ่านที่แปลงผ่าน md5 ไว้ถึง 20,000,000 ข้อมูล เพราะฉะนั้น รหัสไหนที่เค้าไม่ได้ใส่ในดาต้าเบส จึงหาไม่เจอไงครับ

รหัสผ่าน อย่าตั้งเป็นคำง่ายๆ ที่มีความหมายในพจนานุกรม
บันทึกการเข้า

WinWinSolution
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 8



ดูรายละเอียด
« ตอบ #32 เมื่อ: 26 กรกฎาคม 2011, 10:52:07 »

update ผมลอง decode  md5 กับ เว็บนี้ดูมันถอดรหัสกลับมาได้ครับ
หรือยังงัยกันแน่ ช่วยดูหน่อยครับ

http://md5.my-addr.com/md5_dec...er_online/md5_decoder_tool.php


รหัสมันง่ายเกินไปหรือเปล่าคับ ผมทดสอบกับพาสของผม มันบอกว่า Hash"xxx" not found in database. wanwan023 wanwan023 wanwan023


เค้าเก็บรหัสผ่านที่แปลงผ่าน md5 ไว้ถึง 20,000,000 ข้อมูล เพราะฉะนั้น รหัสไหนที่เค้าไม่ได้ใส่ในดาต้าเบส จึงหาไม่เจอไงครับ

รหัสผ่าน อย่าตั้งเป็นคำง่ายๆ ที่มีความหมายในพจนานุกรม

อ้อ ครับ หมายความว่าโปรแกรมไม่ได้ ถอดรหัส แต่ค้นหารหัสในฐานข้อมูลมาให้เรานี่เองเหรอครับ
บันทึกการเข้า

if  you!=(solution)
    you=problem;
else exit ( ^ ^ );
armposh
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 9



ดูรายละเอียด
« ตอบ #33 เมื่อ: 26 กรกฎาคม 2011, 11:16:17 »

ยากเกินไปไหม นิ เฮ้ย Lips Sealed Lips Sealed Lips Sealed
บันทึกการเข้า

หน้า: 1 [2]   ขึ้นบน
พิมพ์