在通信中传递简单的英文消息需要设计一个对英文字符进行加解密的系统。该系统对英文字符进行加密,假设明文为plaintext, 采用6-12 位的字符作为密钥key,加密后密文为ciphertext

小明和小花为了在通信中传递简单的英文消息,需要设计一个对英文字符进行加解密的系统。该系统对英文字符进行加密,假设明文为plaintext, 采用6-12 位的字符作为密钥key,加密后密文为ciphertext;该加密系统至少满足以下要求:←

(1)实现加密算法:若明文为可见字符(ASCII表中,可见字符的范围是32-126),加密为循环使用密钥序列Ki的字面值对明文序列Pi的ASCII值相加得到密文序列Ci,若相加结果Ci大于126,则将其数值对126取模再加31,使得最终结果仍然是可见字符;若明文为不可见字符,不作任何处理, Ci=Pi;所有的Ci按顺序输出便得到密文ciphertext,如密文字符为‘a’,密钥字符为1’,加密过程97+1=98,转换为字符为'b’。←

(2)实现解密算法:对每一个可见字符密文Ci, 将其ASCII值减去对应密钥Ki的字面值得到明文Pi,若小于32,则将其数值减去31再加126,使得最终得到的Pi仍然是可见字符;若密文为不可见字符,不作任何处理,Pi=Ci; 所有的Pi按顺序输出便得到明文plaintext,加密与解密为互逆算法。

(3)设计一个加解密的类Cipher,类中至少有上述三个属性( plaintext,ciphertext,key),并设计构造方法对其初始化,其中key初始化“123456”,plaintext 为自己的学号,ciphertext为任意字符串。←

(4)设计setKey.和getKey方法,注意setKey.方法需要用户输入密钥,并检测密钥的长度是否符合要求,不符合需要重新输入直到符合;同样需要实现方法setPlaintext、getPlaintext、setCiphertext 和getCiphertext。←

(5)设计加密方法encryption 和解密方法decryption, 分别通过key对输入的明文plaintext加密和对输入的密文ciphertext解密,并显示加解密前后的结果。∈

(6)进步一般实现加密 方法encryptionl和解密方法decryption1, encryption1 方法对已有文件进行加密,密文保存到文档; decryption1 方法对已有的文件进行解密,明文保存到文档。

(7)写- -个测试类,在主方法中通过循环语句实现菜单,测试上述所有功能。作品部分功能参考如下:
小明加解密系统欢迎您!请选择:

1、设置密码(当前密码为: 123456)

2、设置明文(当前明文为: 202210139001 )3、设置密文(当前密码为: 32566625<457)4、加密

5、解密

6、对文件plain. txt进行加密

7、对文件cipher . txt进行解密

8、退出加密系统

请输入(1-8) :
加密前的明文为: 202210139001加密后的密文为: 32566625<457

1、设置密码(当前密码为: 123456 )

2、设置明文(当前明文为: 202210139001 )3、设置密文(当前密码为: 32566625<457)4、加密

5、解密

6、对文件plain. txt进行加密

7、对文件cipher . txt进行解密

8、退出加密系统

请输入(1-8)
解密前的密文为: 32566625<457解密后的明文为: 202210139001

1、设置密码(当前密码为: 123456)

2、设置明文(当前明文为: 202210139001)3、设置密文(当前密码为: 32566625<457)4、加密

5、解密

6、对文件plain. txt进行加密

7、对文件cipher. txt进行解密

8、退出加密系统

请输入(1-8) :