首页 百科知识 字符串加密成固定长度字符串

字符串加密成固定长度字符串

时间:2023-10-16 百科知识 版权反馈
【摘要】:例4-6 地下工作者A与上级B之间常使用电报联系,为了保密,A发给B的电文需首先翻译成英文(明文),再将英文按一定规律加密,然后将加密后的电文(密文)通过电报局发给B,B接到电文后,需先解密,再翻译,才能读出A发给B的信息。,52;A要发出的英文加密方式为:将任何一个字母转为序号为这个字母的3倍的字母,如果序号的3倍超过了52,则进行取余运算,使值在52内,对应相应的字母。

4.3.4 字符串应用举例

例4-6 地下工作者A与上级B之间常使用电报联系,为了保密,A发给B的电文需首先翻译成英文(明文),再将英文按一定规律加密,然后将加密后的电文(密文)通过电报局发给B,B接到电文后,需先解密,再翻译,才能读出A发给B的信息。

假设A和B之间约定的英文加密规律为

为所有的字母规定了一个顺序:a,b,c,d,…,z,A,B,C,…,Z,依次编号为1,2,3,…,52;A要发出的英文加密方式为:将任何一个字母转为序号为这个字母的3倍的字母,如果序号的3倍超过了52,则进行取余运算,使值在52内,对应相应的字母。例如:字母a的序号为1,转换为c,字母b的序号为2,转换为f,字母A的序号为27,转换为序号为27*3%52=29的字母,即字母C,以此类推,字母Z的依然转为字母Z。

要求编程将从键盘中输入的明文转化为相应的密文。

要将明文的一个字符ch进行转换,首先需得到明文字符ch的序号,如ch为小写字母,则其序号为ch−'a'+1;如为大写字母,则为ch−'A'+27。当得到密文字符的序号num后,如其值在1到26之间,则相应的字符的ASCII码为num+'a'−1,如果值在27到52之间,则为num−27+'A'。

将明文的字符依次按上面的规律转换便可得到密文,最后需为密文字符串加上结束标志。

参考程序为

img263

img264

程序的运行结果如图4.3.6所示。

img265

图4.3.6 字符加密

常见的编程错误4.3

●在处理字符串数组时,没有考虑终止符'\0'。

●没有使用'\0' 终止一个新建的字符串。

●换行字符'\n'可能是一个输入字符的有效数据。

●在使用字符串库函数、字符库函数和转换库函数时,没有分别包含string.h、ctype.h和stdl ib.h头文件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈