| Type | |
|---|---|
| Usage | |
| Site web |
yEnc est un algorithme de conversion de format de données, depuis du binaire vers du texte. Il est généralement utilisé sur Usenet pour le transfert de fichiers. Il a pour but de remplacer les codages historiques que sont uuencode et base64, grâce à sa meilleure efficacité.
En effet, il diminue le surcoût des codages précédents (uuencode et base64, sur six bits) via l’utilisation de l’« ASCII étendu » (sur huit bits). Le surcoût de ce codage est souvent de l’ordre d’un à deux pour cent, alors que celui des codages sur six bits est de 33 à 40 %. En conséquence, le corps du message (contenant la pièce jointe) est plus petit et peut être transmis plus rapidement.
Un autre avantage du codage yEnc est l'ajout d'une somme de contrôle de type CRC, qui permet de vérifier l’intégrité du fichier joint.
Le codage yEnc a été créé et placé dans le domaine public par Jürgen Helbing en 2001. Il n’est décrit que de façon informelle, il ne dispose pas de normalisation (RFC).
Le codage yEnc présente plusieurs inconvénients,,, déjà présents dans le codage uuencode, et résolus entretemps par MIME.
=ybegin et =yend pour délimiter les portions encodées. Cette technique n'est pas complètement fiable puisque rien n’empêche le contenu d’un message — en particulier si celui-ci parle de yEnc — de contenir ces chaînes.Subject:) pour réassembler les fichiers découpés, ce qui encore une fois n’est pas robuste.De plus, yEnc introduit des faiblesses supplémentaires.
yEnc, le nom du fichier et le numéro de partie. MIME résout cet aspect en renseignant ces informations dans des en-têtes dédiés.À l'exception du faible surcoût de l’encodage lui-même, la norme MIME offre déjà, dans un cadre normalisé, toutes les fonctionnalités de yEnc — transmission de données binaires, découpage en plusieurs parties, lignes délimitrices, contrôle d’intégrité (via MD5, là où yEnc utilise CRC-32). Pour cette raison, intégrer le codage yEnc dans la norme MIME, auprès de base64 et quoted-printable, résoudrait la majorité de ces problèmes. Toutefois, bien que cela ait été suggéré,, aucune spécification formelle ou non n’a été produite.