Linux系统下发送Email的C语言代码(2)

文章作者 100test 发表时间 2007:03:14 16:38:53
来源 100Test.Com百考试题网


过程很明显了,再简单说说base64编码方式:可以将字符串3个3个的分开(不足的编码后以=补),我们知道每个字符8位,这样,3个字符就是24位,base64编码将这3个字符(24位),6位6位的分开,分成4个字符,再将这4个字符的ascii码值与下面的表比较,取出相应的字符,就是编码后的最终字符。例如:abc这3个字符,编码前是这样的:

0110 0001 0110 0010 01100011

现在6位6位的重组:

011000 010110 001001 100011

得到的字符为:

00011000 00010110 00001001 00100011

ascii码值分别为:24 22 9 35。对照下面表,得出编码后的字符:YWJj。从程序的思路来看就是:

1。a>>2

2.(a&.0x03)<<4 | (b>>4)

3.(b&.0x0f)<<4 | (c>>6)

4.c&.0x3f

然后将得到的值对照下表就可得出编码后的字符,具体实现见代码。Base64编码转换表(摘自RFC2045)

Table 1: The Base64 Alphabet



value Encoding value Encoding value Encoding value Encoding

0 A 17 R 34 i 51 z

1 B 18 S 35 j 52 0

2 C 19 T 36 k 53 1

3 D 20 U 37 l 54 2

4 E 21 V 38 m 55 3

5 F 22 W 39 n 56 4

6 G 23 X 40 o 57 5

7 H 24 Y 41 p 58 6

8 I 25 Z 42 q 59 7

9 J 26 a 43 r 60 8

10 K 27 b 44 s 61 9

11 L 28 c 45 t 62  

12 M 29 d 46 u 63 /

13 N 30 e 47 v

14 O 31 f 48 w (pad) =

15 P 32 g 49 x

16 Q 33 h 50 y


相关文章


Linux系统下发送Email的C语言代码(3)
Linux系统下发送Email的C语言代码(1)
Linux系统下发送Email的C语言代码(2)
在Linux系统下清除操作信息的记录
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛