java安全通信概述

java安全通信概述

ID:20210687

大小:113.50 KB

页数:10页

时间:2018-10-11

java安全通信概述_第1页
java安全通信概述_第2页
java安全通信概述_第3页
java安全通信概述_第4页
java安全通信概述_第5页
资源描述:

《java安全通信概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java安全通信概述1.安全通信介绍    计算机安全通信过程中,常使用消息摘要和消息验证码来保证传输的数据未曾被第三方修改。  消息摘要是对原始数据按照一定算法进行计算得到的结果,它主要检测原始数据是否被修改过。消息摘要与加密不同,加密是对原始数据进行变换,可以从变换后的数据中获得原始数据,而消息摘要是从原始数据中获得一部分信息,它比原始数据少得多,因此消息摘要可以看作是原始数据的指纹。  例:下面一段程序计算一段字符串的消息摘要packagecom.messagedigest;importjava.security.*;pu

2、blicclassDigestPass{ publicstaticvoidmain(String[]args)throwsException{  Stringstr="Hello,Isenttoyou80yuan.";  MessageDigestmd=MessageDigest.getInstance("MD5");//常用的有MD5,SHA算法等  md.update(str.getBytes("UTF-8"));//传入原始字串  byte[]re=md.digest();//计算消息摘要放入byte数组中  //下面把消

3、息摘要转换为字符串  Stringresult="";  for(inti=0;i<re.length;i++){   result+=Integer.toHexString((0x000000ff&re[i])

4、0xffffff00).substring(6);  }  System.out.println(result); }}  当我们有时需要对一个文件加密时,以上方式不再适用。  又例:下面一段程序计算从输入(出)流中计算消息摘要。packagecom.messagedigest;importjava.io.*;impo

5、rtjava.security.*;publicclassDigestInput{ publicstaticvoidmain(String[]args)throwsException{  StringfileName="test.txt";  MessageDigestmd=MessageDigest.getInstance("MD5");  FileInputStreamfin=newFileInputStream(fileName);  DigestInputStreamdin=newDigestInputStream(fi

6、n,md);//构造输入流  //DigestOutputStreamdout=newDigestOutputStream(fout,md);  //使用输入(出)流可以自己控制何时开始和关闭计算摘要  //也可以不控制,将全过程计算  //初始时是从开始即开始计算,如我们可以开始时关闭,然后从某一部分开始,如下:  //din.on(false);  intb;  while((b=din.read())!=-1){   //做一些对文件的处理   //if(b=='$')din.on(true);//当遇到文件中的符号$时才

7、开始计算  }  byte[]re=md.digest();//获得消息摘要  //下面把消息摘要转换为字符串  Stringresult="";  for(inti=0;i<re.length;i++){   result+=Integer.toHexString((0x000000ff&re[i])

8、0xffffff00).substring(6);  }  System.out.println(result); }}  当A和B通信时,A将数据传给B时,同时也将数据的消息摘要传给B,B收到后可以用该消息摘要验证A传的消息是

9、否正确。这时会产生问题,即若传递过程中别人修改了数据时,同时也修改了消息摘要。B就无法确认数据是否正确。消息验证码可以解决这一问题。  使用消息验证码的前提是A和B双方有一个共同的密钥,这样A可以将数据计算出来的消息摘要加密后发给B,以防止消息摘要被改。由于使用了共同的密钥,所以称为“验证码”。  例、下面的程序即可利用共同的密钥来计算消息摘要的验证码packagecom.mac;importjava.io.*;importjava.security.*;importjavax.crypto.*;importjavax.cryp

10、to.spec.*;publicclassMyMac{ publicstaticvoidmain(String[]args)throwsException{  //这是一个消息摘要串  Stringstr="TestString";  //共同的密钥编码,这个可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。