]>
Commit | Line | Data |
---|---|---|
1 | basE91 - converting binary data to ASCII text | |
2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
3 | ||
4 | Copyright (c) 2000-2006 Joachim Henke | |
5 | ||
6 | ||
7 | basE91 is an advanced method for encoding binary data as ASCII characters. It | |
8 | is similar to UUencode or base64, but is more efficient. The overhead produced | |
9 | by basE91 depends on the input data. It amounts at most to 23% (versus 33% for | |
10 | base64) and can range down to 14%, which typically occurs on 0-byte blocks. | |
11 | This makes basE91 very useful for transferring larger files over binary | |
12 | insecure connections like e-mail or terminal lines. | |
13 | ||
14 | The current algorithm has been written with portability and simplicity in mind | |
15 | an is therefore not necessarily optimised for speed. | |
16 | ||
17 | ||
18 | * Alphabet | |
19 | ||
20 | As the name suggests, basE91 needs 91 characters to represent the encoded | |
21 | binary data in ASCII. From the 94 printable ASCII characters (0x21-0x7E), the | |
22 | following three ones have been omitted to build the basE91 alphabet: | |
23 | ||
24 | - (dash, 0x2D) | |
25 | ' (apostrophe, 0x27) | |
26 | \ (backslash, 0x5C) | |
27 | ||
28 | The translation table is composed of the remaining characters as shown below. | |
29 | ||
30 | 0 A 13 N 26 a 39 n 52 0 65 % 78 > | |
31 | 1 B 14 O 27 b 40 o 53 1 66 & 79 ? | |
32 | 2 C 15 P 28 c 41 p 54 2 67 ( 80 @ | |
33 | 3 D 16 Q 29 d 42 q 55 3 68 ) 81 [ | |
34 | 4 E 17 R 30 e 43 r 56 4 69 * 82 ] | |
35 | 5 F 18 S 31 f 44 s 57 5 70 + 83 ^ | |
36 | 6 G 19 T 32 g 45 t 58 6 71 , 84 _ | |
37 | 7 H 20 U 33 h 46 u 59 7 72 . 85 ` | |
38 | 8 I 21 V 34 i 47 v 60 8 73 / 86 { | |
39 | 9 J 22 W 35 j 48 w 61 9 74 : 87 | | |
40 | 10 K 23 X 36 k 49 x 62 ! 75 ; 88 } | |
41 | 11 L 24 Y 37 l 50 y 63 # 76 < 89 ~ | |
42 | 12 M 25 Z 38 m 51 z 64 $ 77 = 90 " | |
43 | ||
44 | ||
45 | * Building | |
46 | ||
47 | 1. `cd' to the directory containing the package's source code and type `make' | |
48 | to compile the package | |
49 | ||
50 | 2. optionally, type `make check' to run any self-tests that come with the | |
51 | package | |
52 | ||
53 | 3. type `make install' to install the program and documentation in `/usr/local' | |
54 | (to specify another installation prefix than `/usr/local', type | |
55 | `make prefix=PATH install' instead) | |
56 | ||
57 | 4. you can remove the program binaries and object files from the source code | |
58 | directory by typing `make clean' | |
59 | ||
60 | ||
61 | * Developer | |
62 | ||
63 | Joachim Henke <j-o@users.sourceforge.net> | |
64 | ||
65 | ||
66 | * Copying | |
67 | ||
68 | All source code in this package is released under the terms of the BSD license. | |
69 | See the file LICENSE for copying permission. | |
70 | ||
71 | ||
72 | * See also | |
73 | ||
74 | Please visit the basE91 home page [http://base91.sourceforge.net/] for the | |
75 | latest version and pre-compiled binaries. |