encoder นอกจาก md5 แล้วยังมีอะไรอีกบ้างครับ

เริ่มโดย peappeap, 27 พฤษภาคม 2013, 22:34:03

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

peappeap

encoder นอกจาก md5 แล้วยังมีอะไรอีกบ้างครับ

คือพอดี md5 มันประกอบด้วยตัวอักษรกับตัวเลข แล้วผมอยากได้ encoder ที่มีเฉพาะตัวเลขอย่างเดียวครับ (0-9) ไม่ทราบว่าจะใช้
encoder ตัวไหนดีครับ ( ไม่เอา เลขฐานนะครับ ) ขอขอบพระคุณล่วงหน้าครับ  . :wanwan017: :wanwan017:

max30012540


peappeap


normalblue

#3
encode คือการแปลงรหัสอย่างหนึ่งจากหลายวิธีการ ให้เป็นเอกภาพและนำไปใช้ได้โดยระบบที่แตกต่างกันสามารถเข้าใจในแบบเดียวกันได้ เช่น่ Binary - > ASCII, UTF-8
encrypt คือการเข้ารหัสเพื่อเสริมความปลอดภัยให้กับข้อมูล มีหลายวิธี หลายกระบวนทัศน์ ถ้าใช้ในการเข้ารหัส Password ส่วนมากแล้วใช้วิธีการที่เรียกว่า Hashing ครับ
hashing ปกติแล้วเป็นการจับคำหรือกลุ่มคำเข้าไปยัง hash table ผ่าน Algorithm ต่างๆ ให้ได้ผลลัพธ์การเข้ารหัสที่มีขนาดตัวอักษรคงที่

ใน PHP นอกจาก md5 ก็จะมีหลาย hash function ทั้ง sha1, bcrypt, hash, sha3
ปกติแล้ว การ hash ของ md5 ค่อนข้างทำได้รวดเร็ว เมื่อเทียบกับ hash function อื่นๆ แต่ก็ต้องตามมาด้วย security ที่น้อยกว่าชาวบ้านเพราะทุกวันนี้
มันมี Dictionary decryption ถอดรหัส md5 ออกมาทุกวัน หากใช้ MD5 แนะนำต้องเพิ่ม SALT เข้าไปด้วยเพื่อให้ Dictionary เดาได้ยากขึ้น

Bcrypt เหมือนจะเป็น Algorithm ที่เข้ารหัสแล้ว Hack ได้ยากสุด ใช้เวลานานที่สุดในการ Hack แต่ก็อีกนั่นแหละครับ มันช้า หากคุณเข้ารหัส MD5 นาทีนึงได้ 1 แสนชุดข้อมูล
คุณ hash ด้วย Bcrypt อาจจะได้แค่หลักร้อย ต้องเลือกเอาครับว่างานของเรา เหมาะสมกับ Security ระดับไหน

เว็บทั่วไปหรือแม้แต่ CMS เอง ก็เลือกจากแค่ md5('Password'+[SALT]) แค่นั้น แต่ผมว่ามันยังไม่พอเพียงสำหรับ Static Salt
เราจะต้องทำให้ Salt เป็น Dynamic ไม่ซ้ำกันสำหรับแต่ละคนแล้วใช้ public key พิสูจน์พร้อม วิธีการนี้จะ Break Encryption ยากกว่า Bcrypt มากมาย

รายละเอียด Security เป็นหนังยาวครับ ใครศึกษา Cryptography จะรู้ว่าคนเหล่านี้ไม่ได้พูดภาษาเดียวกันกับชาวบ้าน เหอะๆ

peappeap