1、实验1 对称加密体制实验 实验报告学院工商管理学院年级、专业、班电子商务121班姓名梁颖思成绩课程名称电子商务安全与技术实验项目名 称对称加密体制实验指导教师签名开课实验室 6012014年11月1日一、实验目的电子商务和电子贸易的迅猛发展,使得因特网以及网络的安全问题越来越受到关注。本次实验将对电子商务常用的软件平台(Java 2)平台下的加密及解密方法进行验证,通过本次实验具体要达到的实验目的如下:1. 掌握对称密码体制的基本原理;2. 掌握典型对称加密体制DES的基本算法;3. 掌握Java 2平台下的密码体系结构;4. 掌握Java 2平台下的对称加密体制API的使用方法;5. 掌握在
2、Java 2平台下编写加密及解密代码的方法.二、 实验内容1. 熟悉Java 2平台下的对称加密及解密函数的使用方法;2. 采用DES加密算法加密一个文本文件;3. 采用DES算法将前一步中加密的密文解密成明文;4. 对比解密后的明文与原始明文,验证你所实现的加密和解密代码是正确的。三、 实验步骤1. 采用文本编辑器(任意一个)编辑一包含明文的文件(plaintext.txt),该文件中应不小于200字(汉字或字符);2. 编写Java代码,采用DES算法对上述文件进行加密,加密后的密文的文件名为cipher.dat(二进制文件);3. 编写java 代码 ,采用DES算法将cipher.da
3、t解密成明文,文件名为decrypt.txt4. 编写java代码,用于比较plaintext.txt 和decrypt.txt四、 实验要求:1. 实验报告中要给出你所使的Java API;2. 实验报告中要给出你用于加密测试的明文及加密后的密文(给出其字符方式表示的十六进制数);3. 分析Java2平台加密系统体系结构的特点;五、 实验过程1. 采用文本编辑器(任意一个)编辑一包含明文的文件(plaintext.txt),该文件中应不小于200字(汉字或字符);2. 编写Java代码,采用DES算法对上述文件进行加密,加密后的密文的文件名为cipher.dat(二进制文件);3.编写jav
4、a 代码 ,采用DES算法将cipher.dat解密成明文,文件名为decrypt.txt4.编写java代码,用于比较plaintext.txt 和decrypt.txt六、 实验结果(1) 当目标目录下不存在须加密的文件时,系统找不到指定的文件,加密出错。(2) 当目标目录存在须加密文件时,加密成功,解密成功,加密与解密结果进行对比。加密成功后产生密文文件,解密成功后产生明文文件。加密后的密文如下:解密后的明文文件如下,与原文一致。七、 附录(自己实现的源代码)import java.io.FileInputStream;import java.io.FileOutputStream;im
5、port javax.crypto.Cipher;import javax.crypto.CipherOutputStream;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;public class DesTest public SecretKey des_key;public DesTest() throws Exception try KeyGenerator keygen = KeyGenerator.getInstance(DES);des_key = keygen.generateKey(); catch
6、 (Exception e) System.out.println(获取密钥出错: + e.getMessage();throw e;public void encrypt(String src_file, String dest_file) throws Exception FileInputStream fis;FileOutputStream fos;try Cipher des_cipher = Cipher.getInstance(DES);des_cipher.init(Cipher.ENCRYPT_MODE, des_key);fis = new FileInputStream(
7、src_file);fos = new FileOutputStream(dest_file);byte b = new bytefis.available();fis.read(b);byte cipher = des_cipher.doFinal(b);fos.write(cipher);fos.flush();System.out.println(加密成功!加密文件为cipher.dat! ); catch (Exception e) System.out.println(加密出错: + e.getMessage();throw e;public void decrypt(String
8、src_file, String dest_file) throws Exception FileInputStream fis;FileOutputStream fos;try Cipher des_cipher = Cipher.getInstance(DES);des_cipher.init(Cipher.DECRYPT_MODE, des_key);fis = new FileInputStream(src_file);fos = new FileOutputStream(dest_file);byte b = new bytefis.available();fis.read(b);b
9、yte cipher = des_cipher.doFinal(b);fos.write(cipher);fos.flush();System.out.println(解密成功!解密后的明文文件为decrypt.txt! ); catch (Exception e) System.out.println(解密出错: + e.getMessage();throw e;public void cmp(String src_file1, String src_file2) throws Exception FileInputStream fis1;FileInputStream fis2;try f
10、is1 = new FileInputStream(src_file1);fis2 = new FileInputStream(src_file2);byte b1 = new bytefis1.available();byte b2 = new bytefis2.available();fis1.read(b1);fis2.read(b2);boolean same = true;if(b1.length = b2.length) for(int i=0; i 4);int low = (b & 0x0f);buf.append(hexCharshigh);buf.append(hexCharslow);八、 心得体会按照老师ppt上的代码加以改动,初步完成了对称加密体制算法的编写,其中有部分出错也通过询问班里的大神和上网查找资料解决了。加密的文件以.dat格式产生,通过上网查找打开的方法,我将后缀名改为.txt后就可以打开了,但是打开后看到一堆乱码(如上图)有点没底气儿,可是原文和明文的对比结果一致,那应该就是加密后的密文了哈。九、 联系方式 miashimshim