zoukankan      html  css  js  c++  java
  • 20169214 2016-2017-2 移动平台实验三

    实验三 敏捷开发与XP实践

    Java密码学算法学习

    凯撒密码学习:

    • 原理:明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)(k2为解密密钥)(在这里k1=k2,不妨记为k)。凯撒密码的加密过程可记为一个变换:c≡m+k mod n (其中n为基本字符个数)同样,解密过程可表示为:m≡c+k mod n (其中n为基本字符个数)
    • 代码练习
    • 实践结果:

    Des算法

    • 编程思路:

      • 加密:
        从文件中获取密钥->创建密码器(Cipher对象)->初始化密码器->获取等待加密的明文->执行加密->处理加密结果
      • 解密:
        获取密文->获取密钥->创建密码器(Cipher对象)->初始化密码器->执行解密
    • 代码练习
      加密
      解密

    RSA算法

    MD5

    • 编程思路:
      生成MessageDigest对象->传入需要计算的字符串->计算消息摘要->处理计算结果
    • 代码练习

    实验练习中问题和解决办法:

    • 问题1:

    创建Test测试文件时,误点了‘Disable “Create Test”’,导致黄色小灯泡下的Create Test不见了,无法创建Test测试文件。

    • 解决办法:

    办法有三种:
    - 1.快捷键alt+instert,选择JUnit test,选择JUnit3。

    注意:此方法创建出的Test测试文件中包含所有的可测试模板,非常好用。
    - 2.在被测试类的类名上右击,点击“Go To”,然后“Test”。

    - 3.快捷键Ctrl+Shift+t,效果和方法2是一样的。

    • 问题2:传参数问题

      • 例如,练习中的凯撒密码,运行代码出现如下错误:
    • 解决方法:

      • 这是传参数出现了问题,main函数中都包含有一个args参数,这个可以由命令行获取。但在IDEA中,要通过以下方法进行参数的输入:run->Edit Configurations,然后输入args要接收的参数。

    课堂实践中的问题和解决方法

    • 说明:本周课堂实践中,主要是练习了命令行参数的运用。有两个知识点:一是通过Integer将字符串转换为数字;二是递归函数的调用。代码已上传至码云,如下:

    • 问题:递归实验中,出现以下问题:

    • 解决方法:

    将代码int sum=clSum(10)改为int[] x=new int[10];int sum=clSum(x)

    分析和感悟

    通过课堂实践,我认识到自己对某些知识点的理解还不到位,在有限的时间内不能做到迅速调出实验结果,虽然大概知道什么原理,但总在一些小问题上出错,以至于会耗费很多时间。所以,以后一定要加深理解,争取不能在这种方面浪费过多的精力。

  • 相关阅读:
    centos 用户管理
    rsync 实验
    文件共享和传输
    PAT 1109 Group Photo
    PAT 1108 Finding Average
    PAT 1107 Social Clusters
    PAT 1106 Lowest Price in Supply Chain
    PAT 1105 Spiral Matrix
    PAT 1104 Sum of Number Segments
    PAT 1103 Integer Factorization
  • 原文地址:https://www.cnblogs.com/yaojingjing/p/6775246.html
Copyright © 2011-2022 走看看