yEnc on suosittu binääristä tekstiksi -koodausmenetelmä, jota käyttävät pääasiassa Usenet -käyttäjät . Käytetään myös lähetettäessä suuria binääritiedostoja sähköpostitse. Verrattuna muihin binääritietojen koodausmenetelmiin tekstiksi, se on tehokkaampi, koska se ei käytä vain 7-bittisen ASCII -taulukon merkkejä, vaan myös osaa laajennetun ASCII-taulukon merkeistä . Tästä johtuen yEnc-koodattujen tiedostojen koko ylittää alkuperäisten koon vain 1-2 % [1] . Tämä on merkittävä parannus verrattuna 33–40 % lisätilaan kuusibittisille koodausmenetelmille, kuten uuencode ja Base64 . Ensimmäisen yEncin version julkaisi Jürgen Helbing vuoden 2001 alussa. Vuoteen 2003 mennessä yEnc oli yleistynyt ja siitä tuli de facto standardi binääritiedostojen koodaamiseen Usenetissa . [2] Nimi yEncode on sanapeli aiheesta "Miksi koodata?" ("Miksi koodata?"), vitsi, joka syntyi siitä syystä, että yEncin perusideana oli, että vain ne binääritiedoston merkit täytyy koodata, joille se oli ehdottomasti sijoitettava kirjeen runko RFC: n teknisten standardien mukaisesti . [3]
Toinen yEncin etu uuencode- , Base64- ja muihin aikaisempiin tekniikoihin verrattuna on CRC-koodi , jonka avulla voit tarkistaa, että lähdetiedosto on koottu oikein ja palautettu yksittäisistä postitse lähetetyistä fragmenteista.
RFC 822:n ja RFC 2822 :n mukaan Usenet - sähköpostiviestit saavat sisältää vain 7-bittisen ASCII - kooditaulukon merkkejä . Käytännössä tätä rajoitusta ei kuitenkaan ole havaittu pitkään aikaan, ja suurin osa nykyaikaisista ohjelmistoista lähettää säännöllisesti 8-bittisiä merkkejä kirjainrungossa. YEncin näkökulmasta 256 mahdollisesta binäärimerkistä 252 voidaan siirtää kirjeen sisällä yhtenä tavuna riippumatta siitä, näkyykö tämä merkki tietokoneen näytöllä vai ei. Merkit NUL, LF, CR ja = (yhtäsuuruusmerkki) on koodattu erityisellä tavalla. LF:n ja CR:n osalta poikkeuksen syy on se, että näillä kirjaimen sisällä olevilla merkeillä on RFC:n kannalta erityinen merkitys. NUL - tämän merkin sisältävien merkkijonojen käsittelyn monimutkaisuuden vuoksi joissakin ohjelmointikielissä ja yEnc-käsittelyalgoritmien optimoinnin syistä. Symbolia = käytetään estomerkkinä .
Useat kriitikot ovat osoittaneet yEncin heikkouksia. [4] [5] [6] [7]
He huomauttivat erityisesti, että yEnc kärsii samoista yleisemmän uuencoden puutteista, jotka on ratkaistu kauan sitten MIME -sähköpostistandardissa . Esimerkiksi yEnc vaatii merkkijonojen "=ybegin" ja "=yend" sijoittamisen sähköpostin tekstiosaan, mikä rajoittaa kyseisessä sähköpostissa lähetettävän binaariosan määrää. [3]
Tämän seurauksena on mahdollista väärä positiivinen tiedostokeräilijä, joka analysoi kirjeen tekstin ja löytää sieltä samanlaisen rivin, joka mainittiin itse yEncin keskustelussa kirjeenvaihdossa. Tämä on pieni virhe, vakavampi on se, että yEnc koodaa tiedostonumerot sähköpostin aiheriville, mikä on epäluotettava tapa välittää tietoja ja se voi olla sekaisin. Tämän seurauksena binaaritiedoston kokoaminen epäonnistuu.
Kritiikkiä koski myös yEnc:tä kuvaavan muodollisen standardin puute.
YEncin jalostusehdotusten joukossa oli myös ajatus yEncin integroimisesta MIME :hen , mikä ilmeisesti säästäisi yEncin useimmilta tämän koodaustekniikan aiheuttamilta puutteilta. YEncin kriitikot eivät kuitenkaan ryhtyneet käytännön toimiin ideoidensa toteuttamiseksi, joten yEncin käyttöä jatketaan nyt siinä muodossa, jossa sen tekniikan tekijä on määritellyt.
IETF ei ole koskaan ehdottanut yEncia tekniseksi standardiksi . YEncin kotisivulla on epävirallinen teknologiaspesifikaatio sekä useita muita teknisiä huomautuksia.
Usenet Forte Agent -uutislukija tukee suoraan yEncia . On myös useita kolmannen osapuolen apuohjelmia, joiden avulla voit käyttää yEncia yhdessä muiden sähköpostin ja uutislukijoiden kanssa.
Outlook Expressille , Windows Mailille ja Windows Live Mailille on olemassa kolmannen osapuolen laajennuksia, jotka mahdollistavat tämän tekniikan. Mozilla Thunderbird tukee yEncia rajoitetusti. Tämä sähköpostiohjelma ei voi purkaa useisiin sähköpostiviesteihin jaettuja tiedostoja. [kahdeksan]