SSL协议基础知识(转载)

原文:http://210.40.7.188/NEW/SSL-SET/0_02.htm

第二章    SSL协议基础知识

2.1 SSL协议历史

1994年,网景公司设计了安全套接层(SSL)协议,最初,仅仅是为了在web浏览器和web服务器之间安全地传输私人数据如信用卡卡号,密码等。在1994年底,网景推出了SSL版本2,并第一次载入了一个商业浏览器——Netscape Navigator。1995推出了版本3,在1996年,一个国际标准组织(IETF)接管了SSL的工作,并将SSL协议重命名为安全传输层(TLS),它是建立在SSLV3基础之上的。在1999年,IETF推出TLS的版本1.0 (The TLS Protocol, Version 1.0, RFC 2246)。

2.2 SSL协议简介

安全套接层协议(SSL,Security Socket Layer)是网景(Netscape)公司提出的基于WEB应用的安全协议,它是一种在两台机器之间提供安全通道的协议。它具有保护传输数据以及识别通信机器的功能。安全通道是透明的,意思是说它对传输的数据不加变更。客户与服务器之间的数据是经过加密的,一端写入数据完全是另一端读取的内容。透明性使得几乎所有基于TCP的协议稍加改动就可以在SSL上运行,非常方便。

SSL安全协议主要提供三方面的服务:

(1)  认证用户和服务器, 使得它们能够确信数据将被发送到正确的客户机和服务器上;

(2)  加密数据以隐藏被传送的数据;

(3)  维护数据的完整性, 确保数据在传输过程中不被改变。

在数据传播之前,加密技术通过将数据转变成看起来毫无意义的内容来保护数据不被非法使用。其过程是:数据在一端 (客户端或者服务器端) 被加密,传输,再在另一端解密。

Read more »

By javafuns on December 7, 2009 at 14:24 · Views: 291 · Permalink · RSS · Leave a comment
Categorized in: Java · Tagged with: , ,

Java Annotations

原文:http://java.sun.com/javase/6/docs/technotes/guides/language/annotations.html

许多 APIs 需要模板代码. 例如, 为了编写 JAX-RPC web 服务, 你必须提供一对接口和实现. 这种模板代码其实可以由工具自动生成, 如果程序使用了注释进行修饰以指示哪些方法可远程访问.

其它 APIs 需要有与程序一起的额外附属文件. 例如 JavaBeans 需要一个与 bean 一同存在的 BeanInfo 类, 而 Enterprise JavaBeans (EJB) 需要一个 部署描述符. 如果这些文件中的信息随同程序在一块会更加方便, 也会不易出错.

The Java platform 已经有各种特定的 annotation 机制. 例如 transient 修饰符是一个特定 annotation 用于指示一个域应该在序列化时忽略, @deprecated javadoc tag 用于指示该方法不应该再使用了. 到了 Java 5.0, 平台具有常规用途的 annotation (也称之为 metadata) 设施, 允许你定义和使用自己的 annotation types. 该设施提供的语法可声明 annotation types, 对声明进行注释, 读取 annotations 的 APIs, 表示 annotations 的 class 文件, 和一个 annotation processing tool.
Read more »

By javafuns on December 1, 2009 at 22:43 · Views: 284 · Permalink · RSS · Leave a comment
Categorized in: Java · Tagged with: ,

外送 10 个 google wave 邀请

可以发 google wave 邀请了,可送10个,要的请排队。。。

By javafuns on November 26, 2009 at 21:28 · Views: 616 · Permalink · RSS · 2 Comments
Categorized in: My Life · Tagged with: 

Java 中的 Properties

Java 中使用 Properties 类代表一个属性集合。相对于我们通常的用法,Properties其实还有其它很多很有意思的使用方式。

构造方法:

Properties 有2种构造方法,其中之一用于创建一个无默认值的属性集合,另外一个用于创建一个带有默认值的属性集合。

Properties(Properties defaults)

例如,当调用 properties 的 getProperty(String key) 方法时,首先在属性集合中查找,如果未找到,则在默认集合中查找,如果还未找到,则返回 null。

加载属性集合:

常用的是通过 load(InputStream inStream) 或 load(Reader reader) ,不过也可以加载 XML 文件 loadFromXML(InputStream in)

另外请参考《巧妙装载你的properties

存储属性集合:

与加载方法相对应,存储方法有 store(OutputStream out, String comments),store(Writer writer, String comments),特别是,也可以存储为 XML:storeToXML(OutputStream os, String comment) or storeToXML(OutputStream os, String comment, String encoding)

属性文件格式:

属性以行为单位,行分为2种:自然行和逻辑行。自然行是指单独的一行,行尾是以回车、换行或者回车加换行作为结尾。而逻辑行则是由多个自然行组成,自然行行尾以 \ 表示该行并未结束。如:
fruits=apple, banana, pear, \
cantaloupe, watermelon, \
kiwi, mango

fruits属性值是 apple, banana, pear, cantaloupe, watermelon, kiwi, mango

键包含行中下列区间内的所有字符:从首个非空白字符开始,直到(但不包括)首个非转义的 ‘=’、 ‘:’ 或非行结束符的空白字符。

所以,属性的 key 和 value 之间完全可以空白字符、: 或者 = 来分隔,以下3种写法是等价的:

Truth = Beauty
Truth : Beauty
Truth    Beauty
Truth = Beauty
Truth : Beauty
Truth    Beauty
By javafuns on November 18, 2009 at 22:08 · Views: 374 · Permalink · RSS · Leave a comment
Categorized in: Java · Tagged with: 

What’s the differences between ClassNotFoundException and NoClassDefFoundError

坦白说,这两者之间有什么区别,以前没有去特意留意过。前些天,QA小姑娘问到我 NoClassDefFoundError 这个错误,我就顺便对比了一下这两者。

从 Java API 文档中,我们其实可以看出一些端倪。

ClassNotFoundException:

文档中写到:

当应用程序试图使用以下方法通过字符串名加载类时,抛出该异常:

但是没有找到具有指定名称的类的定义。

显然,这些方法在编译期是不会检查Class定义是否存在,而只会在 runtime 期间抛出这个异常。

NoClassDefFoundError

当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。

当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。

也就是,该类在编译时还是存在并且能找到,但在运行期却找不到对应的class导致加载失败,抛出了该异常。

By javafuns on November 12, 2009 at 22:15 · Views: 348 · Permalink · RSS · Leave a comment
Categorized in: Java · Tagged with: 

Class and ClassLoader in Java

(以下摘自 Java API 中文文档)

关于 Class

Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(booleanbytecharshortintlongfloatdouble)和关键字 void 也表示为 Class 对象。

Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。

Read more »

By javafuns on November 12, 2009 at 21:58 · Views: 259 · Permalink · RSS · Leave a comment
Categorized in: Java · Tagged with: 

常用英语口语444句

1. I see. 我明白了。
2. I quit! 我不干了!
3. Let go! 放手!
4. Me too. 我也是。
5. My god! 天哪!
6. No way! 不行!
7. Come on. 来吧(赶快)
8. Hold on. 等一等。
9. I agree。 我同意。
10. Not bad. 还不错。
11. Not yet. 还没。
12. See you. 再见。
13. Shut up! 闭嘴!
14. So long. 再见。
15. Why not? 好呀! (为什么不呢?)

Read more »

By javafuns on November 4, 2009 at 13:04 · Views: 258 · Permalink · RSS · Leave a comment
Categorized in: My Life · Tagged with: 

某些 Linux distribution 导致 Java swing 空白

某些 Linux 下使用最新的 Java Swing application 会出现一片空白。

尝试如下两种解决办法:

  1. 在 .profile 或 .bashrc 添加 export AWT_TOOLKIT=MToolkit
  2. 禁用外观的特殊效果
By javafuns on November 3, 2009 at 17:06 · Views: 265 · Permalink · RSS · Leave a comment
Categorized in: Java, Operation Systems · Tagged with: , ,
  • Highest Rated

  • My PicasaPhotos

    IMG_0693.JPG

    IMG_0525.JPG

    IMG_0542.JPG

  • RSS My del.icio.us

  • My RSS