zoukankan      html  css  js  c++  java
  • 20155201 2016-2017-2 《Java程序设计》第十周学习总结

    20155201 2016-2017-2 《Java程序设计》第十周学习总结

    教材学习内容总结

    • Java密码技术

      • 安全的三个属性

        1. 机密性
        2. 完整性
        3. 可用性
      • 密码学: 主要是研究保密通信和信息保密的学科, 包括信息保密传输和信息加密存储等。其两个分支密码编码学和密码分析学相互促进,又相互制约。

      • Java安全体系结构

        1. JCA:Java加密体系结构
        2. JCE:Java加密扩展包
        3. JSSE:Java安全套接字扩展包
        4. JAAS:Java鉴别与安全服务
      • 凯撒密码

      凯撒密码的加密算法极其简单。其加密过程如下:

      在这里,我们做此约定:明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)凯撒密码 加密过程可记为如下一个变换:
      c≡m+k mod n (其中n为基本字符个数)
      同样,解密过程可表示为:
      m≡c+k mod n (其中n为基本字符个数)

      • DES算法-对称加密
      • RSA算法-非对称加密
      • MD5-摘要算法:使用Java计算指定字符串的消息摘要。
        java.security包中的MessageDigest类提供了计算消息摘要的方法
    • 网络

      • 网络编程:网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据。其中的两种程序是客户端和服务器端
      • 计算机网络 :路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以及控制等,通过光纤、网线等连接将设备连接起来,从而形成了一张巨大的计算机网络。
      • 网络编程步骤:
        1. Socket socket1 = new Socket(“192.168.205.1”,10000);
        2. Socket socket2 = new Socket(“www.baidu.com”,80);
        3. OutputStream os = socket1.getOutputStream(); //获得输出流
        4. InputStream is = socket1.getInputStream(); //获得输入流
        5. socket1.close();
        6. socket2.close();
    • Java网络编程技术

      • TCP与UDP方式编程
        • TCP方式 一个基础的网络类——InetAddress类。该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。在Java语言中,对于TCP方式的网络编程提供了良好的支持,在实际实现时,以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。
        • UDP方式UDP方式的网络编程也在Java语言中获得了良好的支持,由于其在传输数据的过程中不需要建立专用的连接等特点,所以在Java API中设计的实现结构和TCP方式不太一样。当然,需要使用的类还是包含在java.net包中。

    教材学习中的问题和解决过程

    • 问题1:如何使DES算法和RSA算法代码成功运行?
    • 问题1解决方案:

    代码调试中的问题和解决过程

    • 问题1:如何运行MD5算法代码?
    • 问题1解决方案:
      使用Java计算指定字符串的消息摘要。
      java.security包中的MessageDigest类提供了计算消息摘要的方法,

    首先生成对象,执行其update()方法可以将原始数据传递给该对象,然后执行其digest( )方法即可得到消息摘要。具体步骤如下:

    (1) 生成MessageDigest对象
    MessageDigest m=MessageDigest.getInstance("MD5");
    分析:和2.2.1小节的KeyGenerator类一样。MessageDigest类也是一个工厂类,其构造器是受保护的,不允许直接使用new MessageDigist( )来创建对象,而必须通过其静态方法getInstance( )生成MessageDigest对象。

    (2) 传入需要计算的字符串
    m.update(x.getBytes("UTF8" ));

    (3) 计算消息摘要
    byte s[ ]=m.digest( );

    (4) 处理计算结果
    必要的话可以使用如下代码将计算结果s转换为字符串。

    代码托管

    上周考试错题总结

    点评过的同学博客和代码

    感悟与思考

    密码学也是我们专业学习的重点之一。本次学习把Java和密码学结合在一起,之前密码学的代码实现都是用c语言,看了Java语言的代码感觉获得了新思路。网络和协议等最近的计算机网络课也有提及,看学习资料的时候也不是很生涩。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
       | 第十周      | 492/6097           |   1/12            | 19/150             |       |
    
    • 计划学习时间:15小时

    • 实际学习时间:19小时

    • 改进情况:本周在工作日期间也学习了一些,累积了学习时间。

    参考资料

  • 相关阅读:
    圣诞节快乐 | 圣诞特效来了!!
    前端特效demo | 值得收藏的6个 HTML5 Canvas 实用案例
    前端特效demo | 一起围观 10 种创意时钟
    即学即用,轻松搞定这些选择器!(下)
    架构师究竟要不要写代码?
    偷懒秘诀之变量篇
    弹幕,是怎样练成的?
    [C++]模板类和模板函数
    [C++]typedef用法
    [面试]CVTE 2019提前批 Windows应用开发一面
  • 原文地址:https://www.cnblogs.com/zhuohua/p/6790387.html
Copyright © 2011-2022 走看看