通过JCA实现DES/CBC文件加密解密
在sun的网站上查找Java语言security包:查找到得是J2SE6的JCA使用手册(http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html)。
阅读以上文档,获取DES/CBC加密模式的API,该文档中含有一个使用样例,通过阅读样例基本掌握利用JCA实现文件加密解密的方法。
通过编写代码实现文件加密解密并检查(DesEncrypter.java)。
使用swing实现GUI
用swing构建简单的主界面(MainGUI.java):
密钥框(KeyPanel.java)为JTextField,但是考虑到有些人只需要随机的16位的密钥,所以附加了一个密钥随机产生的内部类(class GenerateKey)。
为了方便用户,利用Java提供的JFileChoose类实现一个文件选择器(FilePanel.java):
为了保证用户界面友好,使用JOptionPane.showMessageDialog()来提醒用户。
另外,将文件加密解密调用分离出来(FileEncrypter.java),一是为了节省代码量,二是为了结构清晰——分离对文件的加密解密控制。
系统结构
系统UML类图如下:
使用效果图
部分源代码
具体代码:
MainGUI.java
FilePanel.java
大缺陷:
没有认证机制
类的设计组合上有问题(看起来不是很好),需要重构~