在IDEA中使用工具(Code->Reformate Code)把下面代码从新格式化,再研究一下Code菜单,找出一项让本身感受最好用的功能。java
public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tring")); System.out.println("buffer = " + buffer.toString()); if(buffer.capacity()<20) buffer.append("1234567"); for(int i=0; i<buffer.length();i++) System.out.println(buffer.charAt(i)); } }
在码云上把本身的学习搭档加入本身的项目中,确认搭档的项目加入本身后,下载搭档实验二的Complex代码,加入很多于三个JUnit单元测试用例,测试成功后git add .; git commit -m "本身学号 添加内容";git push。git
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上本身的学号水印。提交搭档的码云项目连接。算法
参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。数据结构
没有规范前:app
单击IDEA菜单中的Code->Reformat 或用快捷键Ctrl+Alt+L就能够按IDEA规定的规范缩进。ide
效果以下:工具
1.要体现各自的含义 2.包、类、变量用名词 3.方法名用动宾 4.包名所有小写,如:io,awt 5.类名第一个字母要大写,如:HelloWorldApp 6.变量名第一个字母要小写,如:userName 7.方法名第一个字母要小写:setName
更多详情请参见邹欣老师写的代码规范与代码复审。单元测试
更多详情请参见IDEA快捷键拆解系列(六):Code篇。学习
本身的学习搭档加入本身的项目中
添加搭档的Complex类测试代码
码云上传成功截图:
针对编码规约扫描提出的问题一一解决。
解决方法:右击包名->Refactor->Rename,进行重命名。
问题2:全部的类都必须添加建立者信息
解决方法:按照下面的格式,添加做者和日期。
问题3:类、类属性、类方法必须用javadoc规范
解决方法:将注释格式改完/**内容*/
问题4:方法名、参数名、成员变量、局部变量没有听从驼峰形式
修改后代码截图:
解密:m≡c+k mod n
Java对称加密-DES算法
KeyGenerator kg=KeyGenerator.getInstance("DESede");
kg.init(168);
SecretKey k=kg.generateKey( );
以对象保存在文件中:经过对象序列化方式将密钥保存在文件中:FileOutputStream f=new FileOutputStream("key1.dat");
ObjectOutputStream b=new ObjectOutputStream(f);
b.writeObject(k);
保存密钥编码格式
加密“Hello World!”
对“Hello World!”生成的密文解密
Java非对称加密-RSA算法
加密“Hello World!”
对“Hello World!”生成的密文解密
A生成的公钥和私钥
B生成的公钥和私钥
建立共享密钥
Java摘要算法- MD5
问题:对于凯撒密码的加解密,以前作密码学实验的时候,本身用java实现过,对于其中的加解密,非常烦躁,由于明文是字符型加上密钥做为偏移量,一进行运算就会变成整数,而后还得从整数转回字符,还要考虑是否超出26。
c=c+(key%26)
缩写成c+=key%26;
就能够很好的解决这个问题。以前个人解决办法: