在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;
就能夠很好的解決這個問題。以前個人解決辦法: