ความแตกต่างหลัก: การ เข้ารหัสหมายถึงเทคนิคในการเก็บรักษาข้อมูลที่เป็นความลับโดยการเปลี่ยนรูปแบบของข้อมูล มันถูกเปลี่ยนเป็นรูปแบบที่อ่านไม่ได้เพื่อให้มันปลอดภัย การทำให้งงงวยนั้นเงียบคล้ายกับการเข้ารหัส อย่างไรก็ตามคำนี้มักใช้เพื่อป้องกันรหัสโปรแกรมมากกว่าข้อมูลทั่วไป มันหมายถึงการแปลงข้อมูลเป็นรูปแบบที่ยาก อัลกอริทึมที่ใช้สำหรับการเข้ารหัสและ obfuscation ความแตกต่างที่สำคัญระหว่างพวกเขาคือแม้ว่าจะรู้จักอัลกอริทึม แต่ข้อมูลที่เข้ารหัสไม่สามารถเข้าใจได้หากไม่มีคีย์ที่จำเป็นสำหรับการถอดรหัส ในทางกลับกันข้อมูลที่ทำให้งงสามารถเข้าใจได้ง่ายโดยการรู้อัลกอริทึมที่ใช้สำหรับการทำให้งง มันไม่จำเป็นต้องมีกุญแจ
การรักษาความลับเป็นสิ่งสำคัญมากในบริบทของข้อมูลที่เกี่ยวข้อง ช่องโหว่ในระบบมักจะนำไปสู่ผลลัพธ์ที่ร้ายแรงในกรณีที่ไม่มีระบบความปลอดภัย การเข้ารหัสและการทำให้งงงวยเป็นคำสำคัญสองคำที่เกี่ยวข้องกับระบบความปลอดภัย
มันเป็นสิ่งสำคัญที่จะกล่าวถึงว่าวิธีการเข้ารหัสและถอดรหัสอาจแตกต่างกันไป การเข้ารหัสมีบทบาทสำคัญในโลกปัจจุบันที่มีการแลกเปลี่ยนข้อมูลส่วนใหญ่ผ่านทางอินเทอร์เน็ต ข้อมูลที่เข้ารหัสยังคงปลอดภัยตราบใดที่คีย์นั้นปลอดภัย
การทำให้งงงวยนั้นคล้ายกับการเข้ารหัสมากเนื่องจากมีพื้นฐานของแนวคิดการเข้ารหัสเดียวกัน เพื่อให้ความปลอดภัย อย่างไรก็ตามคำนี้ใช้ในบริบทของแหล่งที่มาของรหัสโปรแกรมไม่ใช่ข้อมูลทั่วไป มันถูกใช้เพื่อแปลงรหัสผ่านและคำจำกัดความของมุมมองขั้นตอนการจัดเก็บฟังก์ชั่น ฯลฯ เป็นรูปแบบที่อ่านไม่ได้ อย่างไรก็ตามเอนทิตีที่สับสนอาจถูกวิศวกรรมย้อนกลับซึ่งหมายความว่ารหัสสามารถถอดรหัสและศึกษาได้
ตัวอย่างเช่น SQL Server สามารถทำให้งงงวยคำจำกัดความของขั้นตอนการจัดเก็บคำจำกัดความการดู ฯลฯ อาจใช้คำนี้สำหรับการปิดบังข้อมูลทุกประเภท มันสามารถทำได้ง่ายเพียงแค่ย้อนกลับคำสั่งของตัวอักษร ไม่เหมือนกับการเข้ารหัสมันไม่ต้องการข้อมูลของปุ่มเพื่อทราบข้อมูลต้นฉบับ สำหรับการทำให้งงงวยบุคคลสามารถยกเลิกการทำให้งงงวยโดยไม่ต้องใช้ปุ่มใด ๆ
อัลกอริทึมที่ใช้สำหรับการเข้ารหัสและ obfuscation ความแตกต่างที่สำคัญระหว่างพวกเขาคือแม้ว่าจะรู้จักอัลกอริทึม แต่ข้อมูลที่เข้ารหัสไม่สามารถเข้าใจได้หากไม่มีคีย์ที่จำเป็นสำหรับการถอดรหัส ในทางกลับกันข้อมูลที่สับสนสามารถเข้าใจได้ง่ายโดยการรู้เกี่ยวกับอัลกอริทึมที่ใช้สำหรับการทำให้ยุ่งเหยิง มันไม่จำเป็นต้องมีกุญแจ
การเปรียบเทียบระหว่างการทำให้งงและการเข้ารหัส:
obfuscation | การเข้ารหัสลับ | |
คำนิยาม | การเปลี่ยนรูปแบบของข้อมูลใด ๆ ในรูปแบบอื่น ๆ มันมักจะใช้ในบริบทรหัสโปรแกรม | การเปลี่ยนรูปแบบของข้อมูลในรูปแบบที่ไม่สามารถอ่านได้โดยใช้คีย์สำหรับการเข้ารหัส |
ข้อกำหนดของกุญแจเพื่อถอดรหัสข้อมูลหรือข้อมูลดั้งเดิม | สามารถถอดรหัสได้โดยไม่ต้องใช้รหัสเพื่อใช้ในการเข้ารหัสข้อมูล | มันเป็นสิ่งจำเป็น |
การเปลี่ยนแปลงของข้อมูล | กลายเป็นรูปแบบที่ยากลำบาก | เป็นรูปแบบที่อ่านไม่ได้ |
ตัวอย่าง | หลัก (L , A, N, D) ถ่าน ** หนึ่ง { สำหรับ (d = atoi (ก [1]) / 10 * 80 atoi (ก [2]) / 5-596; n = "@ NKA \ CLCCGZAAQBEAADAFaISADJAB BA ^ \ SNLGAQABDAXIMBAACTBA TAHDBAN \ ZcEMMCCCCAAhEIJFA EAAABAfHJE \ TBdFLDAANEfDNBP HdBcBBB EA_AL \ สวัสดีโลก! " [L ++ - 3];) สำหรับ (; n -> 64;) putchar (! d +++ 33 ^ L & 1);} รหัสที่สับสนนี้โดย Brian Westley พิมพ์แผนที่โลก | ข้อความธรรมดาข้อความ + อัลกอริทึมการเข้ารหัส + คีย์ = ข้อความที่ถูกรบกวน อัลกอริทึมการถอดรหัส + ข้อความ + สัญญาณรบกวน = ข้อความธรรมดา "INSECURE" กลายเป็น "KPUGEWTG" คีย์คือ 2 ดังนั้นทุกตัวอักษรจะถูกแทนที่ด้วยตัวอักษรซึ่งอยู่ในตำแหน่งที่ 2 ด้านหลัง |