อ่าน 4 นาที
yEnc
yEnc เป็น ระบบ การเข้ารหัสไบนารีเป็นข้อความ สำหรับการถ่ายโอนไฟล์ไบนารีในข้อความบน Usenet หรือผ่าน อีเมล ช่วยลด ภาระการประมวล ผล เมื่อเทียบกับวิธีการเข้ารหัสแบบ US-ASCII...
yEnc
yEncเป็น ระบบ การเข้ารหัสไบนารีเป็นข้อความสำหรับการถ่ายโอนไฟล์ไบนารีในข้อความบนUsenetหรือผ่านอีเมลช่วยลด ภาระการประมวล ผล เมื่อเทียบกับวิธีการเข้ารหัสแบบ US-ASCIIก่อนหน้านี้โดยใช้ วิธีการเข้ารหัส 8 บิตภาระการประมวลผลของ yEnc มักจะน้อยเพียง 1–2% (หากค่าไบต์แต่ละค่าปรากฏด้วยความถี่เฉลี่ยใกล้เคียงกัน) [ 1 ]เมื่อเทียบกับภาระการประมวลผล 33–40% สำหรับวิธีการเข้ารหัส 6 บิต เช่นuuencodeและBase64 yEnc ได้รับการพัฒนาครั้งแรกโดย Jürgen Helbing และเผยแพร่ครั้งแรกในช่วงต้นปี 2001 ภายในปี 2003 yEnc กลายเป็นระบบการเข้ารหัสมาตรฐานสำหรับไฟล์ไบนารีบน Usenet [ 2 ]ชื่อ yEncode เป็นการเล่นคำจาก"Why encode?" (ทำไมต้องเข้ารหัส) เนื่องจากแนวคิดคือการเข้ารหัสเฉพาะอักขระที่จำเป็นอย่างยิ่งเพื่อให้เป็นไปตามมาตรฐานรูปแบบข้อความ[ 3 ]
yEnc ทำงานอย่างไร
เนื้อหาของข้อความใน Usenet และอีเมลนั้นถูกออกแบบมาให้ประกอบด้วยอักขระ ASCII เท่านั้น ( RFC 822หรือRFC 2822 ) การเข้ารหัสส่วนใหญ่ในปัจจุบันจะแปลงไฟล์ไบนารีให้เป็นอักขระ ASCII ที่พิมพ์ได้ เนื่องจากระบบปฏิบัติการส่วนใหญ่รองรับช่วงของอักขระ ASCII ที่พิมพ์ได้ อย่างไรก็ตาม เนื่องจากวิธีนี้จะลดชุดอักขระที่ใช้ได้ลงอย่างมาก จึงทำให้เกิดค่าใช้จ่ายเพิ่มเติม (แบนด์วิดท์ที่สูญเปล่า) อย่างมากในเครือข่าย 8 บิต-ไบต์ ตัวอย่างเช่น ใน uuencode และ Base64 ข้อมูลสามไบต์จะถูกเข้ารหัสเป็นอักขระ ASCII ที่พิมพ์ได้สี่ตัว ซึ่งเท่ากับสี่ไบต์ คิดเป็นค่าใช้จ่ายเพิ่มเติม 33% (ไม่รวมค่าใช้จ่ายเพิ่มเติมจากส่วนหัว) yEnc ใช้อักขระหนึ่งตัว (หนึ่งไบต์) เพื่อแสดงข้อมูลหนึ่งไบต์ของไฟล์ โดยมีข้อยกเว้นบางประการ
yEnc สันนิษฐานว่าข้อมูลไบนารีส่วนใหญ่สามารถส่งผ่าน Usenet และอีเมลได้ ดังนั้น 252 จาก 256 ไบต์ที่เป็นไปได้จะถูกส่งผ่านโดยไม่เข้ารหัสเป็นไบต์เดียว ไม่ว่าผลลัพธ์นั้นจะเป็นอักขระ ASCII ที่พิมพ์ได้หรือไม่ก็ตาม มีเพียงNUL , LF , CRและ = เท่านั้นที่ ถูกหลีกเลี่ยง LF และ CR ถูกหลีกเลี่ยงเนื่องจาก RFC ที่กำหนด ข้อความ อินเทอร์เน็ตยังคงกำหนดให้การขึ้นบรรทัดใหม่และการขึ้นบรรทัดแบบย่อหน้ามีความหมายพิเศษในข้อความอีเมล = เป็นอักขระหลีกเลี่ยง ดังนั้นตัวมันเองจึงถูกหลีกเลี่ยง NUL ก็ถูกหลีกเลี่ยงเช่นกันเนื่องจากปัญหาในการจัดการอักขระว่างในโค้ดทั่วไป แม้ว่าเพื่อเป็นการเพิ่มประสิทธิภาพ yEnc จะเพิ่ม 42 ให้กับทุกไบต์ต้นทางเพื่อให้ (ไม่ใช่เรื่องแปลก) ช่วงยาวของไบต์ศูนย์ไม่จำเป็นต้องหลีกเลี่ยงมากนัก
ไม่มีRFCหรือเอกสารมาตรฐานอื่นใดที่อธิบาย yEnc [ 4 ]หน้าแรกของ yEnc มี ข้อกำหนด แบบไม่เป็นทางการฉบับร่างและไวยากรณ์(ซึ่งขัดแย้งกับRFC 2822และRFC 2045 ) แม้ว่าจะยังไม่ได้ส่งไปยังInternet Engineering Task Forceก็ตาม
เช่นเดียวกับ uuencoding แม้จะมีข้อบกพร่อง แต่ yEnc ก็ยังคงใช้งานได้และมีประสิทธิภาพบน Usenet หน้าแรกของ yEnc ระบุว่า " โปรแกรมอ่านข่าวหลักทั้งหมดได้รับการขยายเพื่อรองรับ yEnc แล้ว " Outlook ExpressของMicrosoft , Windows MailและWindows Live Mailไม่รองรับ yEnc ทั้งสำหรับข่าวหรืออีเมล แต่มีปลั๊กอินให้ใช้งานได้Mozilla Thunderbirdจะถอดรหัสไฟล์ yEnc แบบส่วนเดียวได้ แต่ไม่สามารถรวมไบนารีแบบหลายส่วนได้[ 5 ]
ปัญหา
โปรแกรมเมอร์และผู้ดูแลระบบข่าวหลายคนได้ระบุจุดอ่อนของ yEnc ไว้[ 6 ] [ 7 ] [ 8 ] [ 9 ] yEnc มีข้อบกพร่องหลายอย่างเช่นเดียวกับ uuencode ซึ่งหลายข้อบกพร่องนั้นได้รับการแก้ไขไปแล้วหลายปีก่อนโดยMIME (ซึ่งแก้ไขข้อบกพร่องเดียวกันใน uuencode) ตัวอย่างเช่น yEnc ต้องการให้วางสตริง "=ybegin" และ "=yend" ไว้รอบไฟล์ที่เข้ารหัสในเนื้อหาข้อความ[ 3 ]แม้ว่านี่จะเป็นการปรับปรุงที่ดีกว่า "begin" และ "end" ของ uuencode ซึ่งปรากฏบ่อยกว่าในข้อความปกติ แต่ผู้อ่านข้อความยังคงสามารถพบสตริงเหล่านี้ได้นอกเหนือจากไฟล์แนบ (ส่วนใหญ่มักพบในการสนทนาเกี่ยวกับ yEnc เอง) นอกจากนี้ yEnc และ uuencodeยังพยายามประกอบไฟล์ที่แยกออกเป็นหลายข้อความโดยใช้บรรทัดหัวเรื่อง ซึ่งไม่น่าเชื่อถือ
การนำ yEncode มาใช้
เอกสารร่างข้อเสนอ yEncode เผยแพร่เมื่อวันที่ 31 กรกฎาคม 2544 [ 10 ]ตัวเข้ารหัสและถอดรหัสอ้างอิงถูกรวมอยู่ในเวอร์ชันฟรีแวร์ MyNews 1.9 ในเดือนพฤศจิกายนของปีนั้น[ 11 ] yDec ซึ่งเป็นตัวถอดรหัส win32 ฟรีแวร์ เปิดตัวเมื่อวันที่ 14 พฤศจิกายน 2544 เมื่อวันที่ 21 มีนาคม 2545 Agentได้ให้การสนับสนุน yEnc ในเวอร์ชัน 1.91 [ 12 ] [ 13 ]เนื่องจากข้อเสนอแนะของ Juergen Helbing การเปิดตัวจึงถูกเลื่อนออกไปหนึ่งสัปดาห์[ 14 ] [ 15 ]สองสามวันหลังจากการเปิดตัว Helbing เขียนว่า Forté ได้นำ yEnc มาใช้ในวิธีที่ดีที่สุดเท่าที่จะเป็นไปได้[ 16 ]
Stuffit Deluxeเพิ่มการรองรับ yEnc ในเวอร์ชัน 8.0 ในปี 2546 [ 17 ] [ 18 ] PowerArchiver 9.2 เพิ่มการรองรับ yEnc ในเดือนพฤษภาคม 2548 [ 19 ]
ลิงก์ภายนอก
- หน้าแรกของ yEnc
- ข้อความข้อมูลจำเพาะของ yEnc
- "เรื่องราวของบี-นิวส์และน้องชายของเขา เยนค์"
- "ทำไม yEnc ถึงดีสำหรับ Usenet"
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ yEnc
yEnc เป็น ระบบ การเข้ารหัสไบนารีเป็นข้อความ สำหรับการถ่ายโอนไฟล์ไบนารีในข้อความบน Usenet หรือผ่าน อีเมล ช่วยลด ภาระการประมวล ผล เมื่อเทียบกับวิธีการเข้ารหัสแบบ US-ASCII...
yEnc ทำงานอย่างไร
เนื้อหาของข้อความใน Usenet และอีเมลนั้นถูกออกแบบมาให้ประกอบด้วยอักขระ ASCII เท่านั้น ( RFC 822หรือ RFC 2822 ) การเข้ารหัสส่วนใหญ่ในปัจจุบันจะแปลงไฟล์ไบนารีให้เป็นอักขระ ASCII ที่พิมพ์ได้ เนื่องจากระบบปฏิบัติการส่วนใหญ่รองรับช่วงของอักขระ ASCII ที่พิมพ์ได้...
ปัญหา
โปรแกรมเมอร์และผู้ดูแลระบบข่าวหลายคนได้ระบุจุดอ่อนของ yEnc ไว้ [ 6 ] [ 7 ] [ 8 ] [ 9 ] yEnc มีข้อบกพร่องหลายอย่างเช่นเดียวกับ uuencode ซึ่งหลายข้อบกพร่องนั้นได้รับการแก้ไขไปแล้วหลายปีก่อนโดย MIME (ซึ่งแก้ไขข้อบกพร่องเดียวกันใน uuencode) ตัวอย่างเช่น yEnc...
การนำ yEncode มาใช้
เอกสารร่างข้อเสนอ yEncode เผยแพร่เมื่อวันที่ 31 กรกฎาคม 2544 [ 10 ] ตัวเข้ารหัสและถอดรหัสอ้างอิงถูกรวมอยู่ในเวอร์ชันฟรีแวร์ MyNews 1.