知识大全 用J2SE 1.4 进行 Internet 安全编程(一)

Posted

篇首语:最怕一生碌碌无为,还安慰自己平凡可贵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用J2SE 1.4 进行 Internet 安全编程(一)相关的知识,希望对你有一定的参考价值。

用J2SE 1.4 进行 Internet 安全编程(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  第二部分 客户端    Java 安全套接扩展 (Java Secure Socket Extension JSSE) 使 Internet 安全通信成为现实 它是 SSL (Secure Socket Layer) 及 TLS (Transport Layer Security 由 SSL 改善而来) 的框架和实现 这个包让 Java 开发人员能够开发安全的网络应用 为基于 TCP/IP 的何应用协议 如 HTTP FTP Telnet 或者 NTTP 在客户端和服务器端之间建立安全的数据通道     在这篇文章的第一部分 (服务器端) 作者已经详细说明了 SSL 和 JSSE 并且说明了如何开发服务器端支持 SSL 应用程序 那一部分中我们开发了一个 HTTPS 服务器 这是一个非常有用的应用程序 在这一部分中同样会用到它     在这篇文章涉及到客户端的内容 它首先简述 JSSE 然后会做这样一些事情    l 在客户端使用 JSSE API     l 一步步的开发一个支持 SSL 的客户端应用程序     l 开发简单的支持 SSL 的客户端应用程序     l 从服务器端导出证书并在客户端导入     l 开发一个支持 SSL 的网页浏览器    JSSE  Java 安全套接扩展 (JSSE) 提供了 SSL 和 TLS 协议的框架及实现 JSSE 将复杂的 根本的加密算法抽象化了 这样就降低了受到敏感或者危险的安全性攻击的风险 正如你在本文中看到的那样 由于它能将 SSL 无缝地结合在应用当然 使安全应用的开发变得非常简单 JSSE 框架可以支撑许多不同的安全通信协议 如 SSL 和 以及 TLS 但是 J SE v 只实现了 SSL 和 TLS     用 JSSE 编写客户端应用程序    JSSE API 提供了扩充的网络套接字类 信用和密匙管理 以及为简化套接字创建而设计的套接字工厂框架 以此扩充 java security 和 两个包 这些类都包含在 和 ssl 包中      sll SSLSocketFactory 类是一个创建安全套接字的对象工厂 可以通过下面两种方法获得 SSLSocketFactory 的实例      调用 SSLSocketFactory getDefault 来获得默认的工厂 默认的工厂被配置为只允许服务器端验证 (不允许客户端验证) 注意许多电子商务网站不需要客户端验证      使用指定的配置来构造一个新的工厂 (这不在本文讲述的范围内)     建立 SSLSocketFactory 实例之后 你就可以通过 SSLSocketFactory 实例的 createSocket 方法创建 SSLSocket 对象了 这里有一个例子 该例通过 SSL 端口 (这是 HTTPS 的默认端口) 创建套接字并连接到 Sun 的 WWW 服务器     // Get a Socket factory    SocketFactory factory = SSLSocketFactory getDefault();    // Get Socket from factory    Socket socket = factory createSocket( );     使用低层的 SSL 套接字    现在 让我们看一个使用低层套接字在 HTTPS 服务器上打开一个 SSL 套接字连接的完整例子 在这个例子中 打开了一个到 HTTPS 服务器的 SSL 套接字连接 并且读入默认文档的内容 示例代码 展示了这个应用程序 其中用于打开 SSL 套接字的代码已经加黑显示了 你将会看到 应用程序中其余代码就是常规的输入/输出流代码     代码示例 ReadHttpsURL     import *;    import *;    import ssl *;    public class ReadHttpsURL      static final int HTTPS_PORT = ;     public static void main(String argv[]) throws Exception      if (argv length != )      System out println( Usage: java ReadHttpsURL );     System exit( );          // Get a Socket factory      SocketFactory factory = SSLSocketFactory getDefault();     // Get Socket from factory      Socket socket = factory createSocket(argv[ ] HTTPS_PORT);     BufferedWriter out     = new BufferedWriter(new OutputStreamWriter(socket getOutputStream()));     BufferedReader in     = new BufferedReader(new InputStreamReader(socket getInputStream()));     out write( GET / HTTP/ \\n\\n );     out flush();     String line;     StringBuffer sb = new StringBuffer();     while((line = in readLine()) != null)      sb append(line);          out close();     in close();     System out println(sb toString());             用这个应用程序进行实验     拷贝 ReadHttpsURL 类的代码并粘贴到一个新文件中 将该文件改名为 ReadHttpsURL java 并保存在一个你指定的目录下      使用 javac 编译 ReadHttpsURL java      运行 ReadHttpsURL 并提供一个域名作为参数 如     Prompt> java ReadHttpsURL     几秒种后 你会看到许多 HTML 代码显示在屏幕上 注意 即使我们提供的是域名 我们打开的连接也是 这是因为我们使用的端口号 是 HTTPS 的默认端口号     再试试另一个例子 如     Prompt> java ReadHttpsURL jam ca    这次运行会抛出如下所示的异常 你能猜到是为什么吗?    Exception in thread main ssl SSLHandshakeException: java security cert CertificateException: Couldn t find trusted certificate at ssl internal ssl BaseSSLSocketImpl a(DashoA )    缘于一个很好的理由 它不能运行——因为远端的服务器发送了一个客户端不认识的证书 我在本文的第一部分提到过 当客户端连接服务器的时候 服务器发送它的证书到客户端请求验证 这样 第一个例子中 你进入了 服务器的确发送了证书 但 Java 检查了默认的证书库并认出了这个证书是由可信任的 CA 产生的 默认情况下 Java 信任这个 CA 第二个例子中 你进入的是 jam ca 那个网端的证书不是它自己产生的 就是由一个 Java 不知道的 CA 产生的 因此不受信任       注意 如果系统时钟没有设置正确 那么它的时间就可能在证书的有效期之外 服务器会认为证书无效并抛出 CertificateException 异常     为了让示例正确运行 你得从 jam ca 导入证收到 Java 信任的证书库中 cha138/Article/program/Java/gj/201311/27495

相关参考

知识大全 用J2SE 1.4进行Internet安全编程(三)

用J2SE1.4进行Internet安全编程(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 探讨 J2SE 1.4 发行版中的安全性变化

探讨J2SE1.4发行版中的安全性变化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  安全性是当

知识大全 克服J2SE 1.3 ~ 1.4不兼容问题 HK2000c

克服J2SE1.3~1.4不兼容问题HK2000c  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 用JAVA编制Internet电子白板软件

用JAVA编制Internet电子白板软件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言 

知识大全 电脑win10 手机能连wifi 但是电脑不能连。显示无internet 安全 有木有大神啊

电脑win10手机能连wifi但是电脑不能连。显示无inter安全有木有大神啊win10连wifi显示“无Inter,安全”需要设置,方法如下:“开始”->“运行”,输入“services.ms

知识大全 0.25×1.4×0.4用简便方法计算

0.25×1.4×0.4用简便方法计算0.25×1.4×0.4用简便方法计算解:0.25×1.4×0.4=0.25×0.4×1.4=0.1×1.4=0.14用简便方法计算4.2÷0.4÷0.25,应4

知识大全 1.4²×9-2.3²×36

用简便方法计算!1.4²×9-2.3²×36您好:1.4²×9-2.3²×36=1.4²×9-2.3²×4x9=1.4²×9-4.6²×9=(1.4+4.6)(1.4-4.6)x9=6x(-3.2)x

知识大全 J2SE简介

J2SE简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  多数编程语言都有预选编译好的类库以支

知识大全 J2SE----集合框架

J2SE----集合框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们都知道当想要保存一组

知识大全 J2SE5.0新特性示例---泛型

J2SE5.0新特性示例---泛型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简介  泛型其