10 Java安全应用电子课件 Java程序设计案例教程.pptx

上传人:春哥&#****71; 文档编号:87380571 上传时间:2023-04-16 格式:PPTX 页数:31 大小:10.19MB
返回 下载 相关 举报
10 Java安全应用电子课件 Java程序设计案例教程.pptx_第1页
第1页 / 共31页
10 Java安全应用电子课件 Java程序设计案例教程.pptx_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《10 Java安全应用电子课件 Java程序设计案例教程.pptx》由会员分享,可在线阅读,更多相关《10 Java安全应用电子课件 Java程序设计案例教程.pptx(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、模块10 Java安全应用学习目标01了解Java安全领域和安全特性。02掌握使用Commons Codec加密组件包对数据进行消息摘要处理。03掌握使用摘要处理和加盐处理验证数据的完整性。04了解Java反编译的过程及反编译工具的使用。技能目标1.能够在MyEclipse IDE中为Java项目添加Commons Codec加密组件包。2.能够在MyEclipse IDE中使用MD5算法对用户信息进行摘要处理。3.能够在MyEclipse IDE中使用SHA算法对用户信息进行加盐处理。10.1 回顾与思考当计算机和各种移动设备参与到人类的日常生活中,当网络无处不在时,数据安全成为一个日趋重要

2、的问题。编写安全的代码比编写优雅的代码更为重要,因为安全是一切应用的基石。当今世界高度依赖网络,同时又受制于网络,而网络的开放性则为其带来了许多不安全的因素。各类企业应用架设在不同层级的网络平台上,在为用户提供快捷和便利服务支持的同时,也产生了信息安全方面的隐患。为了满足用户日益增长的信息服务需求,除了不断增扩企业应用的功能和提高传输效率以外,还需要创建高品质的信息安全服务环境,确保数据信息交流的安全性。10.2 Java安全性技术10.2.1 Java安全领域Java安全领域分4个部分:JCA(Java cryptography architecture,Java加密体系结构)JCE(Jav

3、a cryptography extension,Java加密扩展)JSSE(Java secure sockets extension,Java安全套接字扩展)JAAS(Java authentication and authentication service,Java身份验证和身份验证服务)10.2 Java安全性技术10.2.1 Java安全领域JCA提供了基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器。JCE在JCA的基础上进行了扩展,提供了各种加密算法和密钥管理等功能。在网络传输过程中,数据经过多个主机传送给接收者,存在某台主机被窃听的安全问题。JSSE能提供确保网络通信

4、安全的服务。JAAS则提供了在Java平台上进行用户身份鉴别的功能。Java安全领域离不开密码学的支持。10.2 Java安全性技术10.2.2 Java安全特性Java SE平台基于一个动态、可扩展、基于标准、可互操作的安全架构提供服务。其中内置了加密、身份验证和授权、公共密钥基础架构等安全特性。Java安全模型基于一个可定制的“沙盒”,Java软件程序可在其中安全运行,对系统或用户无潜在风险。表10-1详细介绍了Java的各个安全特性,并给出了包含更多信息的资源链接。10.2 Java安全性技术10.2.2 Java安全特性表10-1 Java安全特性10.2 Java安全性技术10.2.

5、3 辅助工具Commons CodecCommons Codec是Apache旗下的一款开源软件,主要用于编码格式的转换,如Base64、二进制、十六进制、字符集和URL编码的转换。Commons Codec还对Java原生的消息摘要算法进行了封装,提高了方法的易用性。Commons Codec最新版本的加密组件包可到Commons Codec官方网站http:/commons.apache.org/proper/commons-codec/download_codec.cgi下载,如图10-1所示。图10-1 Commons Codec官方网站10.2 Java安全性技术10.2.3 辅助工

6、具加密组件包分tar.gz和zip两种压缩格式,并以二进制文件和源文件两种方式提供下载。以zip格式的commons-codec-1.11-bin为例,其包含了二进制可执行文件、源文件、文档文件和对应的测试文件,如图10-2所示。将压缩文件解压至指定目录位置以备用。图10-2 commons-codec-1.11-bin.zip中包含的文件10.3 数据完整性消息摘要算法也可称为单向加密算法。消息摘要算法的主要特征是加密过程不需要密钥(在明文转换为密文或密文转换为明文的算法中所输入的参数),并且经过加密的数据无法被解密,即单向加密,只有输入相同的明文数据再经过相同的消息摘要算法处理才能得到相同

7、的密文。10.3 数据完整性10.3.1 准备工作在myDatabase数据库中新建一个表,并命名为account,SQL命令如下。1.创建数据库向account表中插入两条数据记录。插入记录的SQL命令如下。10.3 数据完整性10.3.1 准备工作对account表的数据记录进行检索的结果如图10-3所示。1.创建数据库图10-3 account表的记录10.3 数据完整性10.3.1 准备工作【例10-1】编写一个用户登录应用程序模块,提供用户名和密码登录服务。文件名为Example10_1.java,其代码如下。2.创建应用程序其代码见P209-210。因为拥有数据库访问权限的人员或系

8、统开发人员都可以轻易获得数据库用户信息的访问权限,所以这种应用系统很不安全,必须对用户信息中的敏感数据加以隐藏。可使用消息摘要算法隐藏用户密码。10.3 数据完整性10.3.2 摘要处理1.修改用户数据MySQL提供了MD5和SHA1两种消息摘要算法函数:md5()和sha()。使用MD5算法隐藏用户密码,更新用户密码的SQL命令如下。update account set password=md5(password);再次对account表的数据记录进行检索,可以发现用户密码已被加密,结果如图10-4所示。图10-4 用md5()处理后的account表的记录10.3 数据完整性10.3.2

9、摘要处理2.修改应用程序【例10-2】使用Commons Codec加密组件包对输入的用户密码进行MD5摘要处理。首先要向项目添加Commons Codec加密组件包。在MyEclipse IDE中,右击项目myPro,在弹出的快捷菜单中选择“Properties”选项,弹出“Properties for myPro”窗口,在左侧的列项中选择“Java Build Path”,再在右侧切换到“Libraries”选项卡,如图10-5所示。10.3 数据完整性10.3.2 摘要处理2.修改应用程序【例10-2】图10-5“Properties for myPro”窗口10.3 数据完整性10.3

10、.2 摘要处理2.修改应用程序【例10-2】单击Add External JARs按钮,在弹出的“JAR Selection”对话框中找到所需加密组件包所在的目录位置,如图10-6所示。图10-6“JAR Selection”对话框10.3 数据完整性10.3.2 摘要处理2.修改应用程序【例10-2】单击“打开”按钮,返回“Properties for myPro”窗口,在“Java Build Path”的“Libraries”选项卡中出现了被添加的加密组件包,如图10-7所示。单击OK按钮结束操作。展开项目myPro的目录下的“Referenced Libraries”文件夹,可以发现所

11、添加的加密组件包。图10-7 加密组件包添加完成10.3 数据完整性10.3.2 摘要处理2.修改应用程序【例10-2】修改Example10_1.java文件中的部分代码,粗体部分为修改的代码。文件名为Example10_2.java,其代码如下。其代码见P213-214。运行后按提示分别输入正确的用户名和密码。运行结果如下。10.3 数据完整性10.3.3 加盐处理常用的消息摘要算法在绝大多数数据库管理系统中都能找到相应的函数支持。单凭摘要值长度就能判断出系统大致所采用的摘要算法的类型。为了加大数据破译难度,可使用摘要值长度更长的算法。可是,很多数据库管理系统并没有提供相应的算法支持。加盐

12、处理是在原有数据中加入其他数据成分以增加数据的复杂度,达到难以被轻易破译的目的。所加入的“盐”必须一种用户自有且固定不变的数据。假如系统要求用户有固定的用户名、电子邮箱等信息,这些信息则可以作为“盐”与用户密码相结合,经过摘要处理后获得隐蔽性更强的摘要值。10.3 数据完整性10.3.3 加盐处理1.修改用户数据修改Example10_1.java文件中的部分代码,粗体部分为修改的代码。文件名为Example10_2.java,其代码如下。update account set password=sha(concat(name,email);再次对account表的数据记录进行检索,可以发现用户

13、密码长度由32位增加到40位,结果如图10-8所示。图10-8 用sha()加盐处理后的account表的记录10.3 数据完整性10.3.3 加盐处理1.修改用户数据再次运行文件Example10_2.java,按提示分别输入正确的用户名和密码。运行结果如下。请输入用户名:admin请输入密码:123abc密码不正确因为用户密码已经过加盐处理,用户即使输入正确的用户名和密码,通过MD5摘要处理后也无法成功登录。10.3 数据完整性10.3.3 加盐处理2.修改应用程序【例10-3】使用Commons Codec加密组件包对输入的用户密码进行SHA摘要处理。修改Example10_2.java

14、文件中的部分代码,粗体部分为修改的代码。文件名为Example10_3.java,其代码如下。其代码见P215-217。运行后按提示分别输入正确的用户名和密码。运行结果参照【例102】的运行结果。代码中的public static String sha1Hex(String data)方法以十六进制字符串形式返回SHA消息摘要信息。10.4 Java反编译【例10-4】Java反编译工具JD-GUI的使用。下载JD-GUI-windows-1.4.0.zip文件,解压后双击jd-gui.exe文件运行,如图10-9所示。图10-9 Java反编译工具JD-GUI10.4 Java反编译【例10

15、-4】Java反编译工具JD-GUI的使用。在JD-GUI主窗口中,执行“File”“Open File”命令,在弹出的“打开”对话框中选择需要进行反编译操作的字节码文件,如图10-10所示。图10-10“打开”对话框10.4 Java反编译【例10-4】Java反编译工具JD-GUI的使用。单击“打开”按钮,返回JD-GUI主窗口,在代码区出现了反编译后的源文件,如图10-11所示。图10-11 反编译后的源文件10.5 小结Java安全领域包括JCA、JCE、JSSE和JAAS。Java安全特性包括:平台安全性、加密、身份验证和访问控制、安全通信及公共密钥基础架构(PKI)。消息摘要算法常

16、用于数据完整性验证。使用Commons Codec加密组件包在Java应用程序中对MySQL数据库中隐藏的数据进行摘要处理及加盐处理。通过Java反编译工具将字节码文件转换为可阅读的源文件以深入学习研究Java源程序。10.6 习题1.Java安全领域有哪些内容?与密码学有什么关系?2.什么是消息摘要算法?它的作用是什么?3.自己动手在MyEclipse IDE中向Java项目添加Commons Codec加密组件包。4.什么是Java反编译?10.7 上机实践仿照本模块中的例子,对myDatabase数据库的account原始表进行以下数据操作。1.用SHA算法对用户密码进行加密,并用Commons Codec加密组件包进行摘要处理。2.用MD5算法对用户密码进行加盐加密,并用Commons Codec加密组件包进行加盐处理。3.自己找一个完整的Java字节码文件,用Java反编译工具转换后研读。谢谢观看!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com