点击空白处退出提示
作品详情
(1)实现加密算法:若明文为可见字符(ASCII表中,可见字符的范围是32-126),加密为循环使用密钥序列key的字面值对明文序列Pi的ASCII值相加得到密文序列Ci,
1、若相加结果Ci大于126 ,则将其数值对126取模再加31,使得最终结果仍然是可见字符;
2、若明文为不可见字符,不作任何处理,Ci=Pi;
所有的Ci按顺序输出便得到密文ciphertext,如密文字符为‘a’,密钥字符为‘1’,加密过程97+1=98,转换为字符为’b’。
(2)实现解密算法:对每一个可见字符密文Ci,将其ASCII值减去对应密钥Ki的字面值得到明文Pi,
1、若小于32,则将其数值减去31再加126,使得最终得到的Pi仍然是可见字符;
2、若密文为不可见字符,不作任何处理,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)进步一般实现加密方法encryption1和解密方法decryption1,encryption1方法对已有文件进行加密,密文保存到文档;decryption1方法对已有的文件进行解密,明文保存到文档。
(7)写一个测试类,在主方法中通过循环语句实现菜单,测试上述所有功能。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论