加密与解密是通信中最常用的数据转换手段,先了解加密与解密的基本过程;
加密:应用加密算法与密钥对明文(尚未加密的原文)实施加密,转换成密文发送;
解密:接收到密文后,应用相应算法与同一密钥对密文解密,转换为明文;
加密与解密的双方根据事先的基本约定(包括加密算法)与所给密钥进行加密或解密,而第三方不知约定,即使知晓密文与密钥,也很难进行解密了解通信的内容;
试设计简单的加密与解密程序,并进行运行演示;
1.加密与解密双方事先的约定:
(1)、密钥转换为操作码;
把密钥r(约定为3~4为整数)的各位数字相加,所得的和除以4的余数再加1,得到加密操作码m;
(2)、文本字符分为三类分别加密转换;
1)、非小写英文字母加密;
明文中的所有非小写英文字母(约定为ASII码小于97的字符)加密转换为其ASII码减去(10+m)所对应的ASII字符;
2)、ASII码为偶数的小写英文字母;
若小写英文字母的ASII码为偶数,把该字母转换为其对称的英文字母(例如a与z对称,b与y对称等)后,再加上加密操作码m所对应的ASII字符;
3)、ASII码为奇数的小写英文字母;
若小写英文字母的ASII码为奇数,把该字母转换为其对称的英文字母后,再减去加密操作码m所对应的ASII字符;
2.设计要求:
设置数组char s[120]存储明文,int b[120]存储密文,int c[120]存储解密文;
(1)、密钥r的处理;
通过循环求余得r的各位数字和m,经m=m%4+1迭代得唯一的加密操作码m;
输入密钥r比较大(约定3~4位整数),这样可增加第三者试图解密的难度,实际上由密钥r所得的实际加密操作码m并不大,方便操作;
(2)、小写英文字母以外字符转换;
注意到