【选做•同学出题】动手实现Base64算法


Base64算法是一种网络上最常见的用来传输 8Bit字节码的编码方式之一,顾名思义,其是利用 64个可读字符进行编码,请根据下面的具体实现方法,实现 C语言下的 base64 加密。 Base64编码表 索引 字符 索引 字符 索引 字符 索引 字符 索引 字符 索引 字符 索引 字符 索引 字符 0 A 8 I 16 Q 24 Y 32 g 40 o 48 w 56 4 1 B 9 J 17 R 25 Z 33 h 41 p 49 x 57 5 2 C 10 K 18 S 26 a 34 i 42 q 50 y 58 6 3 D 11 L 19 T 27 b 35 j 43 r 51 z 59 7 4 E 12 M 20 U 28 c 36 k 44 s 52 0 60 8 5 F 13 N 21 V 29 d 37 l 45 t 53 1 61 9 6 G 14 O 22 W 30 e 38 m 46 u 54 2 62 + 7 H 15 P 23 X 31 f 39 n 47 v 55 3 63 / 实现原理描述如下:规定Base64的编码表见表,涵盖“A-Z”, “a-z”, ”0-9”, “+”, “/”一共64个字符。 编码的基本步骤: 1. 对原始数据进行分组,每3个字节为一组,每组共 24Bit。 2. 对每组数据重组为四小组,每组 6Bit。 3. 对重组后的每组最前面添加两个“0“,构成每小组8Bit,此时每大组一共32Bit。 4. 根据编码表,转为对应编码值。 若原始字符字节数不构成3的倍数,在其最后补足0直到满足3的倍数,因为补足的0实际不带有有效信息,一般把结尾补足零后转成的字符“A“替换为”=“。 实例可供参考:(转自知乎) 输入:待编码的字符串,仅包含ASCII表中的部分字符,长度不超过70。 输出:编码后的结果字符串。 提示:掩码在计算机学中指的是一串设置为开(1)关(0)的二进制数字位组合,通过与目标数字的按位操作,达到屏蔽指定位的目的。 可以这样类比:把掩码中0看作不透明。1看作透明,进行按位与运算操作相当于用掩码覆盖着原数据的位组合上,只有掩码中值为 1的位才能被看见。示例如图。
输入 #1
Hello!!
输出 #1
SGVsbG8hIQ==
输入 #2
输出 #2
PHVGS1BYXWJn
输入 #3
fAFKPX]bfkp
输出 #3
ZkFGS1BYXWJma3A=

提示

无提示

京ICP备2024093084 号