计算机体系结构与算法分析毕业设计说明书,毕业设计(9)
中南林业科技大学本科毕业设计 软件体系结构与基础算法分析
return pas; }
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
* @param data 原始的明文密码 * @return MD5算法加密后的密码 */
private String getwod(char[] data) {
String pas = null; try {
MessageDigest md = MessageDigest.getInstance(\返回指定的MD5摘要md.update(String.valueOf(data).getBytes());//使用制定字节更新摘要 byte ball[] = md.digest();//通过执行诸如填充之类的最终操作完成哈希计算 int i;//定义的一个初始变量,用来存放相应的值 StringBuffer buf = new StringBuffer(\
for (int offset = 0; offset < ball.length; offset++) { }
pas = buf.toString();// 32位的加密 System.out.println(pas);
i = ball[offset];//获取指定字节处的值 if (i < 0)
i += 256;//改变指定位置符合条件的值 buf.append(\if (i < 16)
buf.append(Integer.toHexString(i));//在新的字节流中加入新的改变了的字符
MessageDigest类
从注册界面上获取到的密码是一个char[],Model层在获取到这个装有密码的数组之后,调用加密的方法。该方法获得需要加密的参数之后,首先解析该数组,通过摘要类使用指定的字节来更新摘要,通过填充类来生成一个新的字节数组。在解析字节数组中的每一个位置对应的字节,当字节大小小于0时,在原字节长度的基础上加上256长度,若是大小小于16则在原字节长度的基础上加上0,然后将新的字节添加到新的字节数组中去。所获取到的就是新的加密后的密码。
注册时加密存入数据库中,避免直接访问数据库时看到的是明文密码。保证了用户数据的安全性,同时也会提高系统的可靠性。
25
中南林业科技大学本科毕业设计 软件体系结构与基础算法分析
2.排序扩展
在对容量进行排序时,由于table中自带的排序和数据库中的数据会产生一定的冲突,排序不会成功,所以有一个冒泡排序近似的算法来完成功能。
public void actionPerformed(ActionEvent e) {
Vector
//如果点击的是显示商品的按钮
table=new JTable(new MyGoodsModel(data)); frame.getPanl().getViewport().add(table);
table.getTableHeader().setReorderingAllowed(false);// 不允许改变表头的顺序 table.setAutoCreateRowSorter(true); frame.getPanl().updateUI();
System.out.println(\运行排序\点的是排序的按钮
Vector int num=data.get(i).getGoodsNum();//获取当前数据的存货量 int state=i;//记录最大的存货的位置 for(int j=0;j if(num<=data.get(j).getGoodsNum()){ } num=data.get(j).getGoodsNum();//如果当前位置的存货量比下个位置的state=j;//记录最大存货量的位置 }else{ 存货量大的话就将下个位置的存货量替换 }//end of for array.add(data.get(state));//将一轮遍历完了的最大存货量的数据添加到新的容data.remove(state);//丛原容器中移除 器中 }//end of for table=new JTable(new MyGoodsModel(array));//将新的数据付给表格模型 frame.getPanl().getViewport().add(table);//刷新表 table.getTableHeader().setReorderingAllowed(false);// 不允许改变表头的顺序 //table.setAutoCreateRowSorter(true); frame.getPanl().updateUI();//刷新表 自定义排序会在完成系统要求功能的同时提高程序执行和反应的效率,在一定程度上优化了系统。 26 中南林业科技大学本科毕业设计 软件体系结构与基础算法分析 5 软件体系结构中算法运用的分析 5.1 排序算法结果分析 图5-1 使用自带的算法排序后的结果 由图5-1不难看出,由于数据库字段的问题table类中自带的排序后产生的结果并不是我们想要的理想的结果。它是将数值型的数据当做字符串来排序的,并不是想数值型那样由大到小的排序后的结果,所以我们需要在原有的软件结构的基础上添加新的排序算法来达到想要的结果。 27 中南林业科技大学本科毕业设计 软件体系结构与基础算法分析 图5-2 用冒泡算法之后的排序结果 所以添加了新的冒泡排序操作后的结果就如图5-2所示,“存货”数量的排序是按照有大到小的顺序排列的,达到了我们想要的结果。 因此不难看出,基础算法在完善系统的功能方面有很好的效果。所以,在系统设计好的基础上,在完善某些功能时,可以优先考虑基础算法去解决。 5.2 加密算法分析 登录时服务器获取到的用户名的密码在前端就已经做了处理,经过MD5转码,将字符串型的用户密码转成16进制的类型存入数据库或者从数据库提取做验证,在基本程度上保证了用户的密码的安全。 28 中南林业科技大学本科毕业设计 软件体系结构与基础算法分析 从界面按获取密码原文调用MD5类返回指定的摘要使用指定字节更新摘要填充更新完的摘要并赋予一个字节数组当前位置是否小于数组长度否当前字节长度<0>16是<16字节值后面加256字节值后面加“0”字节值不变完成加密返回加密后的密文将新的字节值存入数组 图5-3 密文加密流程图 比如用户名的账号密码分别为:admin,admin,那么服务器收到的用户名密码就分别是:admin,21232f297a57a5a743894a0e4a801fc3。要是客户端机器上有中了木马病毒之类的,在不知道系统的解密的算法的情况下就无法窃取到用户的密码。 5.3 扩展分析 基础算法除了在完善系统功能和解决系统性能上有很大的作用之外,在提高系统执行的效率方面也有很大的作用。考虑到在仓库系统的操作中在提高效率主要是从数据库操作方面入手,而存储结构基本上不涉及到算法或者很少涉及到算法,所以没有做相关的实例。但是从基础算法的理解上入手,不难看出,基础算法在提高软件的数据访问效率上的确是有很大的作用的。像在缓存中查找对应的 29
相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




