UUencode
UUencode var det första populära programmet som gjorde det möjligt för binära filer (bilder eller program, dvs för B.) att konvertera så att det bara "utskrivbara ASCII-tecken" består av och problemfritt via e-post kan skickas där endast ASCII- tecken finns tillåten.
berättelse
UU står för rötterna i UNIX . UU i UUencode och -decode, liksom UU i UUcp, står för U NIX till U NIX kopieringsprotokoll . Det vill säga överföringen från en UNIX-dator till en annan UNIX-dator.
Principen liknar Base64- metoden som är vanlig i dag för e-postbilagor : tre byte i den binära filen (= 24 bitar) är uppdelade i fyra gånger 6 bitar och utskrivbara ASCII-tecken tilldelas 6-bitarsvärdena. De första versionerna av UUencode använde helt enkelt ASCII-tecknen med värdena 32 till 95.
Eftersom ASCII-tecknet med värdet 32 är mellanslag och detta ofta inte överlever postutsändningen användes istället ASCII-tecknet med värdet 96 (" `").
Filformat
UUencode använder ett speciellt format för den kodade filen:
-
beginläge filnamn - längddata
- längddata
- ...
- längddata
`end
Som läge skrivs filrättigheterna, som de är vanliga under Unix, som 3 eller 4-siffriga oktala nummer . Det filnamn är namnet på den ursprungliga filen , utan en katalog.
Varje datarad börjar med en 1 byte längdspecifikation, som anger hur många ursprungliga byte som har kodats i den här raden. Denna längdspecifikation är ett tal mellan 1 och 63 och är också uu-kodad, dvs som ett tecken från " !" till " _". Vanligtvis Mkodas 45 byte (dvs. värdet " ") med 60 tecken.
För att visa slutet på filen måste alltid en "tom rad" kodas, som bara innehåller längden byte 0 (kodad " `"). Slutligen finns det en rad med nyckelordet end.
Kodningsmetod
Tre byte källdata uuencodekodas i fyra byte av. Data finns i den uu-kodade filen i de nedre sex bitarna i byten, de övre bitarna ställs in av kodningen:
unkodierter Bitstrom ↔ kodierter Bitstrom aaaaaaaa bbbbbbbb cccccccc ↔ 0kaaaaaa 0kaabbbb 0kbbbbcc 0kcccccc
För kodning är de nya grupperna på sex "00eeeeee" först XOR- länkade med 32 . Bit k ställs in om resultatet är ≤ 32.
uncodiert (XOR 32) (k setzen?) codiert [0] = [00000000] → [00100000] -ja→ [01100000] = [96] [1,31] = [00000001,00011111] → [00100001,00111111] -nein→ [00100001,00111111] = [33,63] [32,63] = [00100000,00111111] → [00000000,00011111] -ja→ [01000000,01011111] = [64,95]
Med andra ord: för 0 är resultatet 96, för alla andra måste 32 läggas till.
Avkodningen av data fungerar i omvänd ordning, fyra byte uudecodekälldata avkodas till tre byte. Om bit k ställs in i källdata måste detta tas bort. Det resulterande värdet kommer sedan att vara 32 XOR- länkat.
codiert (k entfernen) (XOR 32) uncodiert [96] = [01100000] -ja→ [00100000] → [00000000] = [0] [33,63] = [00100001,00111111] -nein→ [00100001,00111111] → [00000001,00011111] = [1,31] [64,95] = [01000000,01011111] -ja→ [00000000,00011111] → [00100000,00111111] = [32,63]
Med andra ord: för 96 är resultatet 0, för alla andra måste 32 subtraheras.
kodierter Bitstrom ↔ unkodierter Bitstrom 0kaaaaaa 0kaabbbb 0kbbbbcc 0kcccccc ↔ aaaaaaaa bbbbbbbb cccccccc
exempel
Ett textstycke ovanifrån fungerar som inmatning:
Geschichte
Das UU steht für die Wurzeln in UNIX. Das UU in UUencode und -decode steht ebenso wie das UU bei UUcp für UNIX to UNIX copy protocol. Also die Übertragung von einem UNIX-Computer zu einem anderen UNIX-Computer.
UUencoding gör det:
begin 644 uuencode-Test.txt
M1V5S8VAI8VAT90T*#0I$87,@554@<W1E:'0@9OQR(&1I92!7=7)Z96QN(&EN
M(%5.25@N($1A<R!552!I;B!5565N8V]D92!U;F0@+61E8V]D92!S=&5H="`-
M"F5B96YS;R!W:64@9&%S(%55(&)E:2!556-P(&;\<B!53DE8('1O(%5.25@@
M8V]P>2!P<F]T;V-O;"X@06QS;R!D:64@W&)E<G1R86=U;F<@#0IV;VX@96EN
M96T@54Y)6"U#;VUP=71E<B!Z=2!E:6YE;2!A;F1E<F5N(%5.25@M0V]M<'5T
%97(N#0H`
`
end
XXkod
XXencode fungerar på samma sätt som UUencode, men använder bara bokstäver och siffror och de två specialtecken plus (+) och minus (-). Detta för att minimera risken för att vissa tecken i textfilen skadas irreparabelt av automatiska teckenuppsättningsomvandlingar (t.ex. från ASCII till EBCDIC ) under överföringen.
Dessutom, med vissa xxencode-versioner finns det möjlighet att skicka en lista med alla tecken som används. Om listan också ändras på grund av felaktiga konverteringar av teckenuppsättningar kan mottagaren känna igen detta och fortfarande avkoda filen korrekt, så länge ändringarna är reversibla .
| värde | karaktär | värde | karaktär | värde | karaktär | värde | karaktär | |||
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | + |
16 | E |
32 | U |
48 |
k
|
|||
| 1 | - |
17: e | F |
33 | V |
49 |
l
|
|||
| 2 | 0 |
18: e | G |
34 | W |
50 |
m
|
|||
| 3 | 1 |
19: e | H |
35 | X |
51 |
n
|
|||
| 4: e | 2 |
20: e | I |
36 | Y |
52 |
o
|
|||
| 5 | 3 |
21: a | J |
37 | Z |
53 |
p
|
|||
| 6: e | 4 |
22: a | K |
38 | a |
54 |
q
|
|||
| 7: e | 5 |
23 | L |
39 | b |
55 |
r
|
|||
| 8: e | 6 |
24 | M |
40 | c |
56 |
s
|
|||
| 9 | 7 |
25: e | N |
41 | d |
57 |
t
|
|||
| 10 | 8 |
26: e | O |
42 | e |
58 |
u
|
|||
| 11 | 9 |
27 | P |
43 | f |
59 |
v
|
|||
| 12: e | A |
28 | Q |
44 | g |
60 |
w
|
|||
| 13: e | B |
29 | R |
45 | h |
61 |
x
|
|||
| 14: e | C |
30: e | S |
46 | i |
62 |
y
|
|||
| 15: e | D |
31 | T |
47 | j |
63 |
z
|
Relaterade ämnen
- 7plus - effektivare och felsäker kodningsmetod som används i amatörradio
- Kermit - protokoll som också mappar binära tecken till ASCII-tecken.
- Base64 - MIME- kodning , används i e-post för att överföra binära filer.
webb-länkar
- Online UUencode / UUdecode-verktyg
- Online XXencode / XXdecode-verktyg
- GNU sharutils - Free Software Foundation-programvaran sharutils innehåller uuencode och uudecode.
- UUDeview - Ett program med öppen källkod för kodning och avkodning av Base64, BinHex för Unix / Windows / DOS