码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-05-04 21:08:00      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:set   ati   _id   如何   uri   私钥   收集   slist   https   

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

自己的贡献

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

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

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

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

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

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

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

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

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

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

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

标签:set   ati   _id   如何   uri   私钥   收集   slist   https   

原文地址:https://www.cnblogs.com/orii/p/12828173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!