实验一古典加密算法.docVIP

  • 12
  • 0
  • 约小于1千字
  • 约 4页
  • 2017-06-08 发布于重庆
  • 举报
实验一古典加密算法

实验一 古典加密算法 实习目的 熟悉java平台的开发环境 理解常见古典加密算法:凯撒密码、多字母替代密码、多表替代密码 理解古典加密技术中的替换技术、置换技术。 实习内容 问题描述 凯撒密码是把字母表中的每个字母用该字母后的某个字母进行代替。 凯撒密码的通用加密算法是:C E p P+K mod26 0 k 26 凯撒密码的通用解密算法是:C E p P-K mod26 0 k 26 基本要求 实现凯撒密码的加密、解密算法,能够根据用户选择密钥和明文进行加解密。 实现提示 若用户输入错误信息则可进行提示。 程序设计 用户可以通过键盘输入一行字符串和所要移动的位数,作为所要实现加密的明文。 由于字母表中共有26个字符,因此,移位前应先将移动的位数和26取模。 Java平台中可以实现字符和证书的自动转换,因此将字符加上一个正整数代表在字母表中右移位数。如果移动的位数为负值,则代表在字母中的左移位。 移位后仍要判断是否超界,如果超界,则应该做相应的运算,如果c ’a’,则应该加上26,如果c ’z’,则应该减去26,同理c ’A’,则应该加上26,如果c ’Z’,则应该减去26. 实现测试 运行界面如下: 测试一:输入一串字符sdfasdfsd,输入一个正整数5,运行结果如下: 测试二:输入同测试一相同的一串字符sdfasdfsd,输入一个负整数 -5,运行结果如下: 测试三:输入一串字符xyzxxxy,输入一个正整数5,此时已经超界,运行结果如下: 测试四:当输入的字符中有数字等非字母字符时例如sdf323,此时加密内容不合理,运行结果如下: 经过以上测试结果可知,程序正确 实习总结: 通过这次实习,我加深了对对凯撒密码的定义的理解,即是把字母表中的每个字母用该字母后的某个字母进行代替,在对程序设计时,改开始没有考虑周全,没有考虑到移动位数为负值的情况,从而出现当输入值不正确时程序会报错,其中越界情况比较麻烦,既要考虑到要将输入的数字取模,防止越界,又要考虑到将字母右移后要判断是否越界,其次还要考虑所输入字符是否符合标准,总之这次实习也告诉我缜密的思维在程序设计中也是比不可少的。

文档评论(0)

1亿VIP精品文档

相关文档