ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:157.02KB ,
资源ID:9600729      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9600729.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络安全实验报告林科大版.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机网络安全实验报告林科大版.docx

1、计算机网络安全实验报告林科大版 课程实训报告书学生姓名: 黄兵新 学 号: 20084749 学 院: 计算机与信息工程 专业年级:2009计算机科学与技术(对口)1班 题 目: 计算机网络安全实验报告 指导教师: 王楚正 20012年4月27日目录 实验一:java安全机制和数字证书的管理 3实验名称: 3实验目的: 3实验步骤: 3实验中遇到的问题及解决方法: 5实验总结: 5实验后的思考: 5实验二对称密码加密算法的实现 6实验名称: 6实验目的: 6实验要求: 6实验步骤: 6实验结论: 8实验三消息摘要的生成和管理 9实验名称 9实验目的 9实验要求 9实验步骤: 9实验四数字签名的

2、实现 12实验名称 12实验目的 12实验要求 12实验步骤: 12运行结果: 13实验结论: 13实验五:非对称密钥 14实验名称: 14实验目的: 14实验要求: 14实验步骤: 14实验结论: 16实验六:Windows口令破解 17实验名称: 17实验目的: 17实验原理: 17实验步骤: 18实验结论: 19实验七 网络嗅探 20实验目的 20实验原理 20实验一:java安全机制和数字证书的管理实验名称: java安全机制和数字证书的管理实验目的:1 了解java的安全机制的架构和相关的知识;2 利用java环境掌握数字证书的管理实验原理: 实验步骤: 1 java安全机制(JVM

3、,沙袋,安全验证码)。2 java的安全机制的架构(1).java加密体系结构(JCA,Java Cryptography Architecture) 构成JCA的类和接口: Java.SeCuritv:定义即插即用服务提供者实现功能扩充的框架与加解密功能调用API的核心类和接口组。 Java.SeCuritv.Cert:一组证书管理类和接口。 Java.security.interfaces:一组封装DSA与RSA的公开和私有密钥的接口。 Java.SeCurity.SpeC:描述公开和私有密钥算法与参数指定的类和接口。用JCA提供的基本加密功能接口可以开发实现含消息摘要、数字签名、密钥生成

4、、密钥转换、密钥库管理、证书管理和使用等功能的应用程序。(2).Java加密扩展(JCE,Java Cryptography Extension) 构成JCE的类和接口: Javax.cryt:提供对基本的标准加密算法的实现,包括DEs,三重DEs(Triple DEs),基于口令(PasswordBasedEncryptionstandard)的DES,Blowfish。 Javax.crypto.interfaces:支持Diffie一Hell-man密钥。 Javax.cryPto.spec:定义密钥规范与算法参数规范。(3).Java安全套接扩展(JSSE,Java Secure So

5、cket1 Extension)JSSE提供了实现SSL通信的标准Java API。 JSSE vl.o结构包括下列包: .J.SSI:包含JSSE API的一组核心类和接口。 .J:支持基本客户机套接与服务器套接工厂功能所必需的。 .Javax.SeCuritv.Cert:支持基本证书管理功能所必需的。3、数字证书的生成和管理 (1)、输入:keytool -genkey -alias zy -keyalg DSA -keystore zhang按提示分别输入:密码,用户名,地区市,省地区,国家区域号。最后输入:y保存。结果如下: (2)、查看信息:keytool -list -v -key

6、store zhang显示结果:(3)将密钥保存到123.cer文件中:keytool -export -alias zy -keystore zhang -file 123.cer(4)、打开当前文件夹中123.cer文件。显示如下:实验中遇到的问题及解决方法:生成的cer文件打开不了。解决方法:换台机器实验总结:1、了解java安全机制和数字证书的生成及管理工作。2、掌握了keytool工具的使用。实验后的思考:1、进一步了解keytool工具的使用。2、如何利用java语言去调用生成的数字证书?实验二对称密码加密算法的实现实验名称:对称加密算法的实现实验目的:1、了解密码体制基本原理;2

7、、掌握运用java平台实现对称加密的相关的类和使用方法;实验要求:1、了解对称加密体制的基本原理;2、了解加密体制中密钥的随机生成的实现方法和重要性;3、了解DESEDE算法,并运行此算法实现对字符串的加解密。实验步骤:1、利用KeyGenerator类中的getInstance方法生成一个指定算法的(对称)密钥,具体方法:import java.security.InvalidKeyException;import java.security.Key;import java.security.NoSuchAlgorithmException;import javax.crypto.Ciphe

8、r;import javax.crypto.KeyGenerator;import javax.crypto.NoSuchPaddingException;public class SimpleExample /* * param args */ public static void main(String args) / TODO Auto-generated method stub try KeyGenerator keyGenerator = KeyGenerator.getInstance(TripleDES);/生成一个TripleDES算法的密钥 keyGenerator.init

9、(112);/指定密钥的长度为128 Key key = keyGenerator.generateKey();/初始化一个Key对象,获取keyGenerator生成的的密钥; Cipher cipher = Cipher.getInstance(TripleDES/ECB/PKCS5Padding);/生成一个实现DES和ECB转换的 Cipher 对象。 cipher.init(Cipher.ENCRYPT_MODE, key);/用于将 cipher 初始化为解密模式的常量。 String text=23464968732855466; byte plaintext = text.ge

10、tBytes(UTF8); /编码方式的转换; / 输出明文 System.out.println(nPlaintext: ); for (int i=0;iplaintext.length;i+) System.out.print(plaintexti+ ); / 输出密文 byte ciphertext = cipher.doFinal(plaintext); / Print out the ciphertext System.out.println(nnCiphertext: ); for (int i=0;iciphertext.length;i+) System.out.print(

11、ciphertexti+ ); / 对cipher进行初始化为加密模式 cipher.init(Cipher.DECRYPT_MODE, key); / Perform the decryption byte decryptedText = cipher.doFinal(ciphertext); String output = new String(decryptedText,UTF8); System.out.println(nnDecrypted text: +output); catch (NoSuchAlgorithmException e) / TODO Auto-generated

12、 catch block e.printStackTrace(); catch (NoSuchPaddingException e) / TODO Auto-generated catch block e.printStackTrace(); catch (InvalidKeyException e) / TODO Auto-generated catch block e.printStackTrace(); catch(Exception e) e.printStackTrace(); 2、text文本的内容不同,产生的密码!显示内容如下:实验结论:1、了解keyGenerator、Ciph

13、er类的使用,具体掌握getInstance()、doFinal()方法等 。2、进一步学习Package:java.security中其它关于生密钥的方法。实验三消息摘要的生成和管理实验名称消息摘要的生成和管理实验目的2.1 了解消息摘要的基本原理2.2 利用java平台对文件生成消息摘要实验要求3.1 了解消息摘要的基本原理及其在安全体系中的作用3.2 了解Hash函数及其重要性3.3采用MD5算法对文件生成消息摘要。实验步骤:import java.io.*;import java.security.*;import java.util.*;public class MD5 privat

14、e String inStr; private MessageDigest md5; private MD5(String inStr) this.inStr=inStr; try this.md5=MessageDigest.getInstance(MD5); catch(Exception e) System.out.println(e.toString(); e.printStackTrace(); public String compute() char charArray=this.inStr.toCharArray(); byte byteArray=new bytecharArr

15、ay.length; for (int i = 0; i charArray.length; i+) byteArrayi=(byte)charArrayi; byte md5Bytes=this.md5.digest(byteArray); StringBuffer hexValue=new StringBuffer(); for (int i = 0; i md5Bytes.length; i+) int val=(int)md5Bytesi&0xff; if(val16) hexValue.append(0); hexValue.append(Integer.toHexString(va

16、l); return hexValue.toString(); public static void main(String args) File f=new File(D:+File.separator+test.txt); / System.out.println(f.getName(); getFileStr s=new getFileStr(); MD5 md5=new MD5(s.getStr(f); String postString=pute(); System.out.println(加密后的内容:n+postString); /获取文件内容的classclass getFil

17、eStr public String getStr(File f) String temp=; try FileInputStream in=new FileInputStream(f); BufferedInputStream bis=new BufferedInputStream(in); byte c=new byte64; int n=0; while(n=bis.read(c)!=-1) temp=new String(c,0,n); System.out.println(原文内容:n+temp); return temp; catch (Exception e) return te

18、mp; 运行结果:实验结论:掌握了MD5对文件中的内容进行加密的过程。实验四数字签名的实现实验名称数字签名的生成和管理实验目的2.1 了解数字签名的基本原理2.2 了解数字签名的基本知识:消息摘要和公钥密钥体制。2.3 利用java平台实现数字签名实验要求3.1 了解数字签名基本原理及其在安全体系中的作用3.2 对密钥进行数字签名。实验步骤:import java.security.*;public class DigitialSignature /* * param args * author huangbingxin */ public static void main(String ar

19、gs) String msg = huangbingxin编写的数字签名; System.out.println(原文是:n + msg); byte msgBytes = msg.getBytes(); KeyPair key=null; Signature sig=null; byte signatureBytes = null; / 形成RSA密钥对 try KeyPairGenerator keyGen = KeyPairGenerator.getInstance(RSA); keyGen.initialize(1024); / 生成公钥和私钥对 key = keyGen.genera

20、teKeyPair(); /实例化Signature,用于产生数字签名,指定RSA和SHA算法 sig=Signature.getInstance(SHA1WithRSA); /得到私钥 PrivateKey privateKey=key.getPrivate(); /用私钥来初始化数字签名对象 sig.initSign(privateKey); /对msgBytes实施签名 sig.update(msgBytes); signatureBytes=sig.sign(); String signature=new String(signatureBytes); System.out.print

21、ln(签名是:n+signature); catch (Exception e) e.printStackTrace(); /使用公钥验证 PublicKey publicKey=key.getPublic(); try sig.initVerify(publicKey); /对msgBytes重新实施签名 sig.update(msgBytes); if(sig.verify(signatureBytes) System.out.print(签名成功!); else System.out.print(签名不成功!); catch (Exception e) / TODO Auto-gener

22、ated catch block e.printStackTrace(); 运行结果:实验结论:掌握了利用RSA和SHA实施数字签名的方法.实验五:非对称密钥实验名称:非对称密钥实验目的:1 了解非对称密钥基本原理;2 掌握运用java平台实现非对称加密的相关的类和使用实验要求:1了解非对称加密体制的基本原理;2了解RSA算法,并运行此算法实现对字符串的加解密。实验步骤:非对称密钥是用公钥加密,私钥解密。现以字符串“I have a friend!”为例,介绍RSA算法的加、解密。这里用文件rsapbkey.dat保存公钥,文件rsapvkey.dat保存私钥。1)、原代码如下:import

23、java.io.*;import java.math.*;import java.security.interfaces.*;/* * author huangbingxin */public class EncryptData /* * 功能:用JAVA实现RSA算法加密、解密的原理和过程 * 算法描述: m:明文; c:密文; p,q: * 两个大素数 n=p*q;FI(n)=(p-1)(q-1); * 加密密钥(私钥):e; * 解密密钥(公钥):d; *d*e=1modFI(n) * 加密过程: * c=me(modn); 解密过程: m=cd(modn); */ public sta

24、tic void main(String args) String s=HolleWorld!; /* * 加密过程 */ try FileInputStream fos=new FileInputStream(rsapbkey.dat);/保存公钥 ObjectInputStream oos=new ObjectInputStream(fos);/声明一个流文件 RSAPublicKey pbk=(RSAPublicKey)oos.readObject();/得到RAS公钥描述结构类 BigInteger e=pbk.getPublicExponent();/得到公钥 BigInteger

25、n=pbk.getModulus();/得到公共模 System.out.println(e=+e); System.out.println(n=+n); byte bb=s.getBytes(UTF8); BigInteger m=new BigInteger(bb); BigInteger c=m.modPow(e, n);/加密 System.out.println(c=+c); String cs=c.toString(); BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream

26、(rsapbkey.dat); out.write(cs, 0, cs.length(); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); / 解密过程 try BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(rsapvkey.dat); String ctext=in.readLine(); BigInteger c=new BigInteger(ctext); FileInputS

27、tream fi=new FileInputStream(rsapbkey.dat); ObjectInputStream oos2=new ObjectInputStream(fi); RSAPrivateCrtKey pck=(RSAPrivateCrtKey)oos2.readObject(); BigInteger d=pck.getPrivateExponent(); BigInteger n=pck.getModulus(); System.out.println(d=+d); System.out.println(n=+n); BigInteger m=c.modPow(d, n

28、); System.out.println(m=+m); byte mt=m.toByteArray(); System.out.println(PlainTextis); for(int i=0;imt.length;i+) System.out.print(mti); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); 结果:实验结论:掌握对用java实现RSA算法的加、解密操作。实验六:Windows口令破解实验名称:Windows口令破解实验目的:1.了解Windows口令破解原理2.能够运用工具实现口令破解;实验原理:一口令破解方法 口令破解主要有两种方法:字典破解和暴力破解。 字典破解是指通过破解者对管理员的了解,猜测其可能使用某些信息作为密码,例如其姓名、生日、电话号码等,同时结合对密码长

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1