- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[Java安全通信概述
Java安全通信概述
1.安全通信介绍
计算机安全通信过程中,常使用消息摘要和消息验证码来保证传输的数据未曾被第三方修改。
消息摘要是对原始数据按照一定算法进行计算得到的结果,它主要检测原始数据是否被修改过。消息摘要与加密不同,加密是对原始数据进行变换,可以从变换后的数据中获得原始数据,而消息摘要是从原始数据中获得一部分信息,它比原始数据少得多,因此消息摘要可以看作是原始数据的指纹。 例:下面一段程序计算一段字符串的消息摘要
package com.messagedigest;import java.security.*;public class DigestPass { public static void main(String[] args) throws Exception{ String str=Hello,I sent to you 80 yuan.; MessageDigest md = MessageDigest.getInstance(MD5);//常用的有MD5,SHA算法等 md.update(str.getBytes(UTF-8));//传入原始字串 byte[] re = md.digest();//计算消息摘要放入byte数组中 //下面把消息摘要转换为字符串 String result = ; for(int i=0;i<re.length;i++){ result += Integer.toHexString((0x000000ffre[i])|0xffffff00).substring(6); } System.out.println(result); }}
当我们有时需要对一个文件加密时,以上方式不再适用。
又例:下面一段程序计算从输入(出)流中计算消息摘要。
package com.messagedigest;import java.io.*;import java.security.*;public class DigestInput { public static void main(String[] args) throws Exception{ String fileName = test.txt; MessageDigest md = MessageDigest.getInstance(MD5); FileInputStream fin = new FileInputStream(fileName); DigestInputStream din = new DigestInputStream(fin,md);//构造输入流 //DigestOutputStream dout = new DigestOutputStream(fout,md); //使用输入(出)流可以自己控制何时开始和关闭计算摘要 //也可以不控制,将全过程计算 //初始时是从开始即开始计算,如我们可以开始时关闭,然后从某一部分开始,如下: //din.on(false); int b; while((b=din.read())!=-1){ //做一些对文件的处理 //if(b==$) din.on(true); //当遇到文件中的符号$时才开始计算 } byte[] re = md.digest();//获得消息摘要 //下面把消息摘要转换为字符串 String result = ; for(int i=0;i<re.length;i++){ result += Integer.toHexString((0x000000ffre[i])|0xffffff00).substring(6); } System.out.println(result); }}
当A和B通信时,A将数据传给B时,同时也将数据的消息摘要传给B,B收到后可以用该消息摘要验证A传的消息是否正确。这时会产生问题,即若传递过程中别人修改了数据时,同时也修改了消息摘要。B就无法确认数据是否正确。消息验证码可以解决这一问题。
使用消息验证码的前提是 A和B双方有一个共同的密钥,这样A可以将数据计算出来的消息摘要加密后发给B,以防止消息摘要被改。由于使用了共同的密钥,所以称为“验证码”。 例、下面的程序即可利用共同的密钥来计算消息摘要的验证码
package com.mac;import java.io.*;import java.security.*;import javax.crypto.*;import
您可能关注的文档
- (录音技术的发展历史.ppt
- [indesign教案最后版2014.doc
- [InformixHDR配置.doc
- [IMS学习设计规范与教学设计.doc
- [GetacX500ppt.ppt
- [INFJ灵性特质的作家型.docx
- [ilog-cplex使用介绍.doc
- [InternetExplorer无法打开Internet站点XXX已终止操作.docx
- [InstallShield的使用介绍.doc
- (作文高分秘笈之巧拟标题.doc
- 2024-2025学年度临床执业医师模考模拟试题及答案详解(名校卷).docx
- 2024-2025学年度临床执业医师模考模拟试题含答案详解(最新).docx
- 2024-2025学年度临床执业医师模考模拟试题及答案详解【有一套】.docx
- 2024-2025学年度临床执业医师模考模拟试题及参考答案详解(培优).docx
- 跨境文具礼品电商2025年供应链整合优化与供应链信息共享策略.docx
- 2024-2025学年度临床执业医师模考模拟试题及参考答案详解【实用】.docx
- 2025年全球ARVR技术在房地产销售中的应用白皮书.docx
- 2024-2025学年度临床执业医师模考模拟试题【精华版】附答案详解.docx
- 运动服饰电商2025年智能仓储分拣系统行业竞争力分析报告.docx
- 跨境文具礼品电商2025年供应链整合优化创新路径探讨.docx
最近下载
- 用人单位劳动合同模板.doc VIP
- 华熙生物-投资价值分析报告:全球最大透明质酸生产商的产业链延伸.pdf VIP
- 20200522-中信证券-华熙生物-688363-投资价值分析报告:研发驱动,服务美好生活.pdf VIP
- 医药生物行业:华熙生物,全球透明质酸领军企业.docx VIP
- 2025年校园监控系统方案(四篇).pdf VIP
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战.docx VIP
- 华熙生物-投资价值分析报告-透明质酸,供需双振_20200413.pdf VIP
- 2025年校企合作实训项目设计与实施案例报告.docx
- 华熙生物-投资价值分析报告-全球透明质酸龙头,积极延伸医疗美妆终端.pdf VIP
- 重庆市巴蜀初一入学分班语文试卷版.doc VIP
文档评论(0)