zoukankan      html  css  js  c++  java
  • 2020_1课程设计—基于BC的证书格式转换工具的设计与实现—个人报告

    2020_1课程设计—基于BC的证书格式转换工具的设计与实现—个人报告

    自己的贡献

    • 收集相关资料,学习证书格式的相关知识
    • 收集相关资料,学习OpenSSL的使用方法
    • 安装OpenSSL
    • 使用OpenSSL命令行查看证书,并实现证书格式转换
    • 收集相关资料,学习BouncyCastle的使用方法
    • 使用BouncyCastle编程实现证书格式的转换
    • 对项目代码进行优化,消除代码冗余重复情况,增加输入边界控制
    • 设计编写网页,将输入测试移到前端进行,形成一个证书转换系统

    列出设计中遇到的问题及解决方法

    1、 Q1:使用BouncyCastle编程的时候,网上资料也很少,很多地方都不知道如何下手
    A1:因为BouncyCastle是一个第三方库,所以直接查看相关源码,在小组组长的帮助下才完成了项目代码

    2、 Q2:写完项目代码之后,发现很多地方写的很冗余,重复的地方很多,完全没有达到“高内聚,低耦合”,而且很多地方写的都很“固定”,比如文件名直接嵌到代码里,不能动态输入等等。
    A2:对代码进行优化,将读证书和写证书分别写成一个类,实现动态输入文件名,并加入文件名的边界测试

    3、 Q3:制作图形化界面的时候,不知道应该把文件等输入的测试放到前端进行,还是后台检测
    A3:查看了其他网页,发现基本都是一点击某个按钮,如果输入信息有误,就很弹窗报错,因此我把输入检测全部移到前端进行。

    列出调试过程中遇到的主要问题,并说明解决方法

    1、 Q1:在使用OpenSSL进行整数格式转换的过程中,出现不能加载根CA私钥的问题

    A1:

    • 使用命令openssl rand -writerand .rnd,查看openssl.conf配置信息,里面有定义证书的存放位置;
    • 需要使用vim /etc/pki/tls/openssl.cnf编辑配置文件,修改../../CA/etc/pki/CA 就解决了。

    2、 Q2:制作网页时候,使用form表单进行前端后台数据交互,检查过XML文件,但是还是数据无法交互
    A2:

    • 我发现form表单中有一个属性enctype="multipart/form-data",是一种用于上传文件的表单,是设置表单的MIME编码。
    • 默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
    • 只有使用了 multipart/form-data,才能完整的传递文件数据。
    • 但是设置了 enctype="multipart/form-data" ,除了file类型表单能获取到,其他value通过request.getParameter都得不到。
    • 这种情况下我们可以利用组件来解决该问题,例如用 jspsmartupload组件:
       com.jspsmart.upload.SmartUpload su = new       com.jspsmart.upload.SmartUpload();
       su.initialize(pageContext);
       su.service(request, response);
       su.setTotalMaxFileSize(100000000);
       su.setAllowedFilesList("zip,rar");
       su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
       su.upload();
       String Name = su.getRequest().getParameter("Name");
       String TYPE_ID = su.getRequest().getParameter("Type");
    
    • 通过 su.getRequest().getParameter("value");就可以了,su.upload()好象必须放在前面,测试中将su.upload()放在获取参数后面不成功。

    设计体会及收获

    • 完成项目代码的时候,发现自己已经好久没写过java代码了,把自己学的全还给老师了,因此大量查了Java API,查看相应类的使用方法,才勉强实现项目。但是写完之后代码简直不能看,全都是冗余重复,同一个部分写了好多次,完全没达到“高内聚低耦合”,在和其他组员沟通协调之后,这才一起将代码优化。在完成网页的过程中,也是频频暴露问题,这就暴露了当时网络编程的知识漏洞和记忆盲点,查阅大量资料才实现前端后台数据连接。
    • 通过本次课设,捡起了之前学的知识,理论实践相结合,巩固了知识体系,虽然在过程中遇到了很多问题,但是我认为就是在发现问题解决问题这个过程中进步的,在做中学习到知识,就是娄老师常提的“做中学”。

    参考资料(图书、网址…)

  • 相关阅读:
    LeetCode 275. H-Index II
    LeetCode 274. H-Index
    LeetCode Gray Code
    LeetCode 260. Single Number III
    LeetCode Word Pattern
    LeetCode Nim Game
    LeetCode 128. Longest Consecutive Sequence
    LeetCode 208. Implement Trie (Prefix Tree)
    LeetCode 130. Surrounded Regions
    LeetCode 200. Number of Islands
  • 原文地址:https://www.cnblogs.com/orii/p/12828173.html
Copyright © 2011-2022 走看看